解析上转型对象的好处
引入:
一个父类 Car
两个子类 BWM、BenZ
两个子类 有一个共同的方法 price()
需求:
当需要在Text类里同时子类的price()方法时,
方法一:
可以直接创建两个子类的对象,然后分别调用子类对象的price()方法输出他们各自的价格。
但是,当Car有很多子类时,方法一需要创建许多子类对象,此时可以用上转型对象的好处来完成需求,
方法二如下:
在Text类里,创建一个方法,soutPrice(Car car),该方法以父类对象Car类为形参(继承的子类皆为car类)
public soutPrice(Car car){
System.out.pritln(car.price());
}
在Text的main函数里面,只需调用soutPrice方法,并传入子类实参就行:
psvm(Idea里面输出主函数代码的简写){
soutPrice(new BWM());
soutPrice(new BenZ());
}
体现上转型的地方:
soutPrice(Car car)方法里,car作为上转型对象,car.price()调用的是子类重写父类的方法
补充:
- 上转型对象 不能 操作子类 自身声明定义 的方法和对象
- 其操作的是 子类所继承的变量,或者子类继承和重写的方法。
- 当父类方法为static修饰时,即使子类重写了该方法,调用时仍为父类的方法