Java学习之Day8

多态

多态就是一种事物的多种状态

多态的前提:

1.类和类之间,必须要有关系(继承关系)

2.必须要有方法的重写(没有方法重写的多态没有意义)

3.(核心)父类的引用(指针)指向子类的对象(空间)

Animal animalCat = new Cat();

多态如何使用成员变量

多态的方式创建对象时,父类的引用只能访问子类空间中属于父类的那块空间。

访问成员变量时,在编译时要查看父类中是否有这个属性,没有就编译错误,运行时访问的是父类中的这个成员变量。

当使用多态形式创建对象的时候,访问成员变量时编译和运行都是看父类中得属性。


多态如何调用成员方法

调用成员方法时,编译时需要看父类中是否有该方法,没有就报错,有就编译通过。运行时调用的是子类重写父类的方法。

当使用多态形式创建对象的时候,调用成员方法时编译看父类,运行看子类。


多态的好处:

    提高了代码的扩展性,后期出现的功能,可以被之前的程序所执行。

多态的弊端:

    当使用多态的方式创建对象时,无法直接调用子类中特有的方法。

                // 多态创建对象
		// 提升了B的类型
		// 提升了子类对象类型--向上转型
		A a = new B();
		// 如何调用子类的特有方法
		// 向下转型 -- 强制类型转换
		B b = (B)a;

多态调用子类的特有方法时,要注意:

    必须要先有向上转型,才能进行向下转型。

猜你喜欢

转载自blog.csdn.net/Ande1922/article/details/80285593