1、多态的含义
多态就是指父类的某个方法被子类重写时,可以各自产生自己的功能行为。(同一个行为具有多个不同表现形式或形态的能力)
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。就是父类引用可以持有子类对象。即编译时看父类,运行时看子类。
//这就是多态
父类A a = new 父类的子类B();
a.方法();
2、对象的转型(C++类型兼容规则)
子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting);
派生类的对象可以赋值给基类对象,在替代之后,派生类对象就可以作为基类的对象使用,但是只能使用从基类继承的成员。
3、多态的实现方式
- 接口多态性。
- 继承多态性。
- 通过抽象类实现的多态性。
4、多态的使用要点
-
多态是方法的多态,属性没有多态性。
-
编写程序时,如果想调用运行时类型的方法,只能进行类型转换。不然通不过编译器的检查。但是如果两个没有关联的类进行强制转换,会报:ClassCastException。 比如:本来是狗,我把它转成猫。就会报这个异常。
-
多态的存在要有3个必要条件:要有继承,要有方法重写,父类引用指向子类对象