目录
抽象类
- abstract的意思是抽象的,被abstract修饰的类,称为抽象类。(abstract代替的是public的位置)
- 抽象类中被abstract修饰的方法,称为抽象方法。(抽象方法不用给出具体的方法体,正常类中不能有抽象方法)
- 抽象类中可以有正常的变量,方法以及构造方法。
- 抽象类不能被实例化。(就是不能创建对象)
- 当正常类继承了抽象类,就必须重写抽象类的抽象方法。
- 抽象类继承抽象类,不需要重写,但如果再被正常类继承就需要把两个抽象类的抽象方法全部重写。
- 抽象方法不可以被private,final,static修饰。
接口
接口的写法和类的写法很相似,把 class 换成 interface 就定义了一个接口。
接口表面上看是多个抽象方法的集合,但本质上是多个类的标准与规范。
关于接口应当知道的内容:
- 接口中的方法不能有具体实现,默认为 public abstract 修饰,即抽象的。
- 从 JDK1.8 起,被 default 修饰的方法,可以有具体实现。
- 接口不可以被实例化。(就是创建对象)
- 接口中可以实现静态方法。(就是 static 修饰的方法)
- 接口中的变量默认是 public static final 修饰的。
- 类用 implements 继承多个接口,继承后需要重写接口的所有抽象方法,如果不能重写所有抽象方法,那么这个类必须是抽象的。
- 接口可以继承接口。
抽象类与接口的区别
抽象类 | 普通类里能写的东西+抽象方法 | 全部权限修饰 | 正常类用extends继承 | 一个子正常类只能继承一个抽象类 |
---|---|---|---|---|
接口 | 全局变量+抽象方法 | public | 正常类用implements实现 | 一个正常类可以实现多个接口 |