思维导图
抽象类
规则
-
抽象类可以没有抽象方法,有抽象方法的类只能定义成抽象类
-
抽象方法不能有方法体
-
抽象类不能被实例化
-
抽象类可以包含成员变量、方法、构造器、初始化块、内部类(接口、枚举)
-
含有抽象方法的类只能被定义为抽象类
- 直接定义抽象方法
- 继承抽象父类,没有完全实现父类的抽象方法
- 实现接口,没有完全实现接口的抽象方法
关于修饰符
- abstract不能修饰变量和构造器
- final和abstract不能同时使用
- abstract和private不能同时修饰方法
- static和abstract不能同时修饰方法,可以同时修饰内部类
接口
规则
-
接口可以包含
-
成员变量
- 只能是静态常量(public static final)
-
方法
-
只能是抽象方法、类方法或默认方法
- 接口里的普通方法总用public abstract修饰,不能有方法体。类方法和默认方法必须有方法体
-
-
内部类
-
内部接口、枚举
- 默认public static修饰
-
-
-
接口成员的访问修饰符只能是public(省略默认为public)
-
Java8允许接口定义默认方法
- 必须使用default修饰,不能用static修饰
-
接口可以扩展多个父接口
-
接口不能被实例化
-
实现接口方法时,必须用public访问修饰符