向上转型:父类的引用指向子类的对象
package 向上转型;
/*向上转型:子类的对象赋值给父类的引用(父类的引用所指向的属性是父类的属性)
,如此就可调用父类类的方法,而不可以调用自身的方法,但如果父类的方法被子类重写,
那就调用子类的方法 。好处:减少重复代码*/
public class Human {
public void sleep() \{
System.out.println("Human sleep..");
\}
public static void main(String\[\] args) \{
Human h = new Male();// 向上转型
h.sleep();
**/\*这样就可以通过父类的引用来调用子类的方法\*/**
Male m = new Male();
m.sleep();
\}
}
class Male extends Human {
public void sleep() {
System.out.println(“Male sleep..”);
}
}
class Female extends Human {
public void sleep() {
System.out.println(“Female sleep..”);
}
}
程序运行结果
向上转型的好处,列如:
设计积木游戏,各种形状的子类积木作为对象时,可以通过向上转型存放在父类积木的引用当中,这样做的目的是,如果去打印输出积木时,不进行向上转型时,我们就要根据子类的对象去书写多个输出函数,这些函数的差异只是参数类型不同,有大量的重复代码,但向上转型后,可以在父类中书写一个输出方法,各种子类对象来调用父类的方法,这样就可以减少代码的重复
还没有评论,来说两句吧...