为了账号安全,请及时绑定邮箱和手机立即绑定

请解释下一下代码的运行结果

请解释下一下代码的运行结果

宝慕林4294392 2019-03-22 18:15:03
public class PrivateOverride{    private void f(){        System.out.printf("Private f()");    }    public static void main(String args[]){        PrivateOverride po = new Derived();        po.f();    }}class Derived extends PrivateOverride{    public void f(){        System.out.printf("Public f()");        }}输出结果是:private f()
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

java上转型对象属性:
1. 上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即为较子类B失去一些属性和功能,这些属性和功能是新增的。
2. 上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写。
3. 上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。
4. 可以将对象的上转型对象再强制转换到一个子类对象,强制转换过的对象具有子类所有属性和功能。

因为你父类中f()是私有的,没有被子类所继承和重写,所以调用的是自身的f()方法。输出Private f()


查看完整回答
反对 回复 2019-04-15
  • 1 回答
  • 0 关注
  • 399 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号