使用多态的好处与对象的向上转型
使用多态的好处
如果不用多态,只用子类,那么写法是::Teacher one = new TeacherO;
one.workO; 1/讲课
Assistant two = new AssistantO:,two.workO;1/辅导
;我现在唯一要做的事情,就是调用work方法,其他的功能不关心。
如果使用多态的写法,对比一下:
Employee one = new TeacherO;
ione.workO; //讲课
Employee two = new AssistantO;
two.workO; 1/辅导
好处:无论右边new的时候换成哪个子类对象,等号左边调用方法都不会变化。
这样搞的话可以让我们的代码更加灵活
引用类型转换
多态的转型分为向上转型与向下转型两种:
向上转型
向上转型:多态本身是子类类型向父类类型向上转换的过程,这个过程是默认的。
当父类引用指向一个子类对象时,便是向上转型。
使用格式:
父类类型 变量名 = new 子类类型(); 如:Animal a = new Cat();
1.对象的向上转型,其实就是多态写法:格式:父类名称对象名= new子类名称0;
Animal animal = new Cato;
含义:右侧创建一个子类对象,把它当做父类来看待使用。
创建了一只猫,当做动物看待,没问题。
注意事项:向上转型一定是安全的。从小范围转向了大范围,从小范围的猫,向上转换成为更大范围的动物。
类似于:
double num = 100;//正确,int --> double,自动类型转换。
向上转型
package day01.quanbus1; public abstract class Animal { public abstract void eat(); }
package day01.quanbus1; public class Cat extends Animal { @Override public void eat() { System.out.println("猫吃鱼"); } }
package day01.quanbus1; public class Demo01Main { public static void main(String[] args) { //对象的向上转型就是父类应用指向之类对象 Animal animal =new Cat(); animal.eat(); } }