你真的熟悉java继承关系?那你知道父类private修饰的内容能被继承吗?

前情引入

关于java的继承,初学的时候,一直认为父类中private修饰的东西时无法被子类继承。后来随着学习的深入,见得多了一些,看到一些文章博客的另一种观点:其实父类中的东西,除了构造方法之外,其它的全都是可以被继承的,包括私有的。但是由于private修饰的东西,只能在本类中可见。所以即便子类继承了,也是不可见的。

我一开始听着很玄乎,什么?我继承了我父亲的遗产,但是我自己却无法使用?这是什么逻辑。反正继承了private修饰的内容,也是不可见的,那和没继承也没啥区别,而且也没法验证子类是不是真的继承了private的内容,所以也没多想。

问题来了

今天我再重新温习多态的时候,遇到了问题。可能大家都已经知道了,在多态形式下,如果是访问实例方法,是遵循一条口诀的:编译看左右,运行看右边。

就是说,编译的时候,必须父类(或接口)中有对应的方法,编译才能通过,但是运行的时候,就跑去运行子类中的具体方法了,如果重写了,那么运行的是子类中重写过的方法。如果没有重写看起来好像运行的是父类中的方法,但实际上运行的是子类中被继承下去的方法,因为没有重写,所以效果是和父类中方法效果是一样的。

如此一来,在多态形式下,就不能调用子类中特有的方法,如果要调用,就必须向下转型。但是我今天突发奇想:如果是父类中特有,而子类中没有的方法呢?(实际上这种情况是无法做到的,因为子类中将父类中所有的东西都继承

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值