1.多态(Polymorphism):我们说子类的父类(玫瑰是花,男人是人)(父类型的引用可以指向子类型的对象)。
2.Parent p = new Child();当使用多态的方式去方法时,首先检查父类中是否有sing()方法,如果没有则编译错误;如果有,再去调用子类的sing()方法。
3.两种强制类型转换:
a)向上类型转换(upcast):比如说将Animal类型转换为Cat类型。即将父类型转换为子类型。对于向下类型转换,必须要显示的调用。
Cat cat new Cat();
Animal animal = (Animal)cat;
animal.sing();
b)向下类型转换(downcast):比如将Animal类型转换为Cat类型。即将父类型转换为子类型。对于向下类型转换,必须要显式指定(必须要使用强制类型转换)。
4.抽象类(abstract class):使用了abstract关键字所修饰的类叫做抽象类。抽象类无法实例化,也就是说,不能new出来一个抽象类的对象(实例)。
5.抽象方法(abstract method):使用abstract关键字所修饰的方法叫做抽象方法。抽象方法需要定义在抽象类中。相对于抽象方法,之前所定义的方法叫做具体方法(有声明,有实现)
6.如果一个类包含了抽象方法,那么这个类一定是抽象类。
7.如果某个类是抽象类,那么该类可以包含具体方法。
8.如果一个类中包含了抽象方法,那么这个类一定要声明成抽象类,也就是说,这个类一定是抽象类;反之,如果某个类是抽象类,,这个既可以包含抽象类,也可以包含具体方法。
9.在子类继承父类(父类是个抽象类),该子类必须要实现父类中所定义的所有抽象方法;否则子类需要声明成一个抽象类。
10. 接口(Interface):接口的地位等同于class,接口中所有的方法都是抽象的方法。在声明接口中的方法时,可以使用abstract关键字。
11. 可以将接口看做特殊的抽象类(抽象类中可以有具体的方法,也可以由抽象方法,而接口中只能有抽象方法,不能有具体的方法)。类可以实现接口,实现使用关键字implements表示,代表某一个接口。
12. 一个类实现了某个接口,那么该类必须要实现接口中声明的中所有的方法。如果该类是个抽象类,那么就无需实现接口中的方法。接口中没有构造方法,不能new,但可以声明一个接口。
13. 在接口中 所有的属性都是静态公开的常量,public static final。接口与接口之间可以多继承,用多个逗号隔开。
14. 多态就是:父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。//向下类型转换必须要加括号
AA aa = new BB();
BB bb =(BB)aa;
bb.output();