向上转型:父类的引用指向子类的对象

蔚落 2022-04-16 00:44 317阅读 0赞

package 向上转型;
/*向上转型:子类的对象赋值给父类的引用(父类的引用所指向的属性是父类的属性)
,如此就可调用父类类的方法,而不可以调用自身的方法,但如果父类的方法被子类重写,

那就调用子类的方法 。好处:减少重复代码*/
public class Human {

  1. public void sleep() \{
  2. System.out.println("Human sleep..");
  3. \}
  4. public static void main(String\[\] args) \{
  5. Human h = new Male();// 向上转型
  6. h.sleep();
  7. **/\*这样就可以通过父类的引用来调用子类的方法\*/**
  8. Male m = new Male();
  9. m.sleep();
  10. \}

}
class Male extends Human {
public void sleep() {
System.out.println(“Male sleep..”);
}
}
class Female extends Human {
public void sleep() {
System.out.println(“Female sleep..”);
}
}

程序运行结果

20181114223423529.png

向上转型的好处,列如:

设计积木游戏,各种形状的子类积木作为对象时,可以通过向上转型存放在父类积木的引用当中,这样做的目的是,如果去打印输出积木时,不进行向上转型时,我们就要根据子类的对象去书写多个输出函数,这些函数的差异只是参数类型不同,有大量的重复代码,但向上转型后,可以在父类中书写一个输出方法,各种子类对象来调用父类的方法,这样就可以减少代码的重复

发表评论

表情:
评论列表 (有 0 条评论,317人围观)

还没有评论,来说两句吧...

相关阅读