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

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..");
    }
}

程序运行结果

向上转型的好处,列如:

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

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值