抽象类 : abstract class 类名
1.抽象类可以定义成员变量
2.抽象类可以定义 抽象方法与普通方法
3.抽象类不能被实例化,需要被继承
4.抽象类作为父类被继承时要注意,
子类如果是普通类 需要重写抽象类的抽象方法
5.抽象类可以作为子类继承其他父类(普通类、抽象类)
6.抽象类 可以只定义抽象方法,只定义普通方法
7.抽象类 不能使用 final关键字 修饰类
8.抽象类 也可以实现接口,可以不用重写接口里面的抽象方法
abstract修饰的方法必修有方法体;
final 修饰符:
被final 修饰的 类 不能被继承
被final修饰的 方法不能被重写
被final修饰的成员变量 不能修改值----->常量
java 是单继承语言 继承使用extends 实现用 implements
类之间只能单继承(类) ,但是可以多实现(接口)
接口
接口内部只能定义抽象方法 ,不能定义普通方法。
接口内部的抽象方法 可以不加 abstract
接口内部定义的 成员变量 实际上是 public final static 修饰的 静态常量
接口之间是可以多继承的
理解:抽象类 作为父类,接口 理解为特殊的抽象类
Animal.静态方法名() 可以设计为 抽象类,接口 优先选择设计为接口
新增特性 与(1) 相违背 可以使用被default 修饰的普通方法
default 方法返回值 方法名(形参){ 方法体; }
**抽象类与接口不同点、88
1.书写上 抽象类 abstract class 接口是interface
- 继承使用extends关键字 实现接口使用implements关键字
3.抽象类 可以定义普通方法与抽象方法,接口内部只能定义抽象方法和被default 关键字修饰的普通方法
4.抽象类只能被单继承 ,接口可以被多实现
5.抽象类只能单继承, 接口可以多继承
6.抽行类可以定义成员变量,接口 只能定义静态常量