抽象类
- 1 使用abstract修饰class的类,叫做抽象类。
- 2 抽象类不能被实例化。即不能被new出来。
抽象方法
- 1 使用abstract修饰method的方法,叫做抽象方法。
- 2 抽象方法只允许被申明,不能有具体实现。
例如:
public abstract void test(String arg);
即抽象方法不能有{},即使{}里面是空,都不允许。
- 3 抽象方法只能申明(定义)在抽象类里面。
- 4 抽象类里面不一定非得有抽象方法。
抽象类作为父类
- 1 抽象类的子类,必须覆盖(重写)抽象类中所有抽象方法。
- 2 如果抽象类的子类没有覆盖(重写)抽象类中的抽象方法,则子类必须也定义为一个抽象类。
- 3 只有定义没有实现的抽象方法,其实是在定义一种方法规范,供不同的子类来实现不同的具体逻辑。
接口(Interface)
- 1 使用inteface关键字定义接口
- 2 接口中的所有方法都抽象方法,可以使用abstract所修饰,不过默认可以省略abstract
- 3 接口同样不能被实例化,即同样不能被new出来。
- 4 接口需要被实现(implements),实现了接口的类可以被实例化
- 5 接口的子类必须实现接口中的所有方法。
- 6 如果是抽象类implements接口,则该抽象类子类可以不实现接口中的方法。
- 7 一个类可以implements多个接口,但是一个类只能继承一个父类。
- 8 接口可以继承另一个接口
- 9 多态在接口中的体现,接口类型的引用可以指向该接口子类的对象,其方法调用也是动态绑定的。
- 10 接口中可以定义成员变量,且默认被public static final所修饰