Java接口和抽象类区别
2023-09-14 08:59:00 时间
- 接口的方法默认是 public,所有方法在接口中不能有实现(Java 8 开始接口方法可以有默认实现),而抽象类可以有非抽象的方法。
- 接口中除了 static、final 变量,不能有其他变量,而抽象类中则不一定。
- 一个类可以实现多个接口,但只能实现一个抽象类。接口自己本身可以通过 extends 关键字扩展多个接口。
- 接口方法默认修饰符是 public,抽象方法可以有 public、protected 和 default 这些修饰符(抽象方法就是为了被重写所以不能使用 private 关键字修饰!)。
- 从设计层面来说,抽象是对类的抽象,是一种模板设计,而接口是对行为的抽象,是一种行为的规范。
备注:
- 在 JDK8 中,接口也可以定义静态方法,可以直接用接口名调用。实现类和实现是不可以调用的。如果同时实现两个接口,接口中定义了一样的默认方法,则必须重写,不然会报错。
- jdk9 的接口被允许定义私有方法 。
总结一下 jdk7~jdk9 Java 中接口概念的变化(相关阅读):
- 在 jdk 7 或更早版本中,接口里面只能有常量变量和抽象方法。这些接口方法必须由选择实现接口的类实现。
- jdk8 的时候接口可以有默认方法和静态方法功能。
- Jdk 9 在接口中引入了私有方法和私有静态方法。
相关文章
- Java中接口是否可以继承多个接口?
- Java面向对象练习
- Java实现 蓝桥杯 算法训练 Cowboys
- Java实现最大流量问题
- Java实现蓝桥杯历届试题格子刷油漆
- java程序员图文并茂细说Unity中调用Android的接口
- Java Web 工作技巧总结 16.8
- Java接口、抽象类、实体类的区别与关系
- Java抽象类与接口的区别
- Atitit java func interface sumup 目录 1. 函数式接口1 1.1.1. 什么是函数式接口?1 1.2. Function, Supplier, Cons
- Java中的Get和Post请求,使用万网接口判断域名是否已被注册
- Simple Logging Facade for Java (SLF4J)作用(java日志框架)
- 【java】Java中-> 是什么意思?
- java中接口(interface)
- java 支付宝 第三方即时到账支付 接口
- java同步和互斥
- Java多态的体现之接口
- Java程序猿从笨鸟到菜鸟之(九十二)深入java虚拟机(一)——java虚拟机底层结构具体解释
- java.lang.OutOfMemoryError: Java heap space
- Java如何获得运行线程的优先级?
- JAVA开发讲义(二)-Java程序设计之数据之谜二