抽象类和接口:
抽象类:当定义一个类时,常常需要定义一些成员方法描述类的行为特征,但有时这些方法的实现方式是无法确定的。
抽象方法的定义格式:
抽象类的定义规则:1.包含抽象方法的类必须是抽象类。
2.抽象类和抽象方法都要使用abstract关键字声明。
3.抽象方法只需声明而不需要实现。
4.如果一个类继承了抽象类,那么该子类必须实现抽象类中的全部抽象方法。
abstract关键字修饰的抽象方法不能使用private修饰,因为抽象方法必须被子类实现,如果使用了private声明,则子类无法实现该方法。
接口:如果一个抽象类的所有方法都是抽象的,则可以将这个类定义接口。接口中除了可以包括抽象方法外,还可以包括默认方法和静态方法,默认方法使用default修饰,静态方法使用static修饰,且这两种方法都允许有方法体。
接口使用interface关键字声明,语法格式:
接口中可以包含三类方法,分别是抽象方法、默认方法、静态方法,其中静态方法可以通过“接口名.方法名”的形式调用,而抽象方法和默认方法只能通过接口实现类的对象来调用。
接口是不允许继承抽象类的,但是允许一个接口继承多个接口。
多态:
多态是指不同对象在调用同一个方法时表现出的多种不同行为。多态主要有两种形式:1.方法的重载。2.对象的多态性。
对象类型的转换:1.向上转型:子类对象→父类对象。
2.向下转型:父类对象→子类对象。
在进行对象的向下转型前,必须发生对象向上转型,否则将出现对象转换异常。