Java 抽象类及接口(abstract class and interface)
- 使用 abstract 关键字所修饰的类叫做抽象类。抽象类无法事理化,也就是说,不能 new 出来一个抽象类的对象(实例)。
- 抽象方法(abstract method),使用 abstract 关键字所修饰的方法叫做抽象方法。抽象方法需要定义在抽象类中。相对于抽象方法,之前所定义的方法叫做具体方法(有声明,有实现)。
- 如果一个类包含了抽象方法,那么这个类一定是抽象类。
- 如果某个类是抽象类,那么该类可以包含具体方法(有声明,有实现)。
- 如果一个类中包含了抽象方法,那么这个类一定要声明成 abstract class ,也就是说,该类一定是抽象类;反之,如果某个类是抽象类,那么该类既可以包含抽象方法,也可以包含具体方法。
- 无论何种情况,只要一个类是抽象类,那么这个类就无法实例化。
- 在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现父类中所定义的所有抽象方法;否则,该子类需要声明成一个 abstract class。
- 实例:各种排序,计算面积
- 接口(interface):接口的地位等同于 class ,接口中的所有方法都是抽象方法。在声明接口中的方法时,可以使用 abstract 关键字,也可以不使用。通常情况下,都会省略掉 abstract 关键字。
- 可以将接口看作特殊的抽象类(抽象类中可以有具体方法,也可以由抽象方法,而接口中只能有抽象方法,不能有具体方法)。
- 类可以实现接口。实现使用关键字 implements 表示,代表了某个类实现了某个接口。
- 一个类实现了某个接口,那么该类必须实现接口中声明的所有方法。如果该类是个抽象类,那么就无需实现接口中的方法了。
- Java是单继承的,也就是说某个类只能由唯一一个父类;一个类可以实现多个接口,多个接口之间使用逗号来分隔。
- 多态:所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。
时间: 2024-11-09 09:56:18