Java中子类都继承父类的什么?

1.构造方法

构造方法不可以被继承的,为什么呢?应为名称的定义,构造方法是一类名称与类名一致,无返回值和类型修饰的一种。所以如果子类继承父类的构造方法的话,那么就违背了构造方法的规定。

2.成员属性

成员属性是可以被继承的,我们要知道,当使用实例化子类的时候,使用new关键字创建子类实例时,JVM在堆内存中为该对象分配空间。这个空间包括子类继承来的成员属性(字段),以及子类自己声明的成员属性。每个对象都有自己的一份实例变量拷贝,无论这些变量是在当前类中定义的还是从父类继承的。

简单的图解

私有化属性可以被继承吗

私有化属性(在Java中使用private关键字声明的属性)确实可以被继承,但是它们在子类中不可直接访问。这意味着,尽管子类会继承父类的所有属性,包括私有属性,但是子类不能直接操作这些私有属性,因为它们对子类来说是不可见的。

在Java中,通常会为私有属性提供公共的getter和setter方法来允许外部通过这些方法间接访问和修改私有属性的值,这是一种封装的实践,目的是保护对象的状态不被非法访问和修改。

关于通过反射访问私有属性:Java的反射API确实允许程序在运行时检查和修改对象的状态,即使是私有属性。通过反射,可以绕过访问控制,使得原本不可访问的私有成员变得可访问。

私有化成员方法可以继承吗

答案是不可以的,我们学一个新的概念,虚方法

虚方法指的是非private方法,非static方法,非final方法

虚方法表指的就是虚方法的集合

当继承的时候,实际上继承的是虚方法表的内容,所以私有化成员方法不可以被继承。

虚方法表这种继承可以提高效率,继承虚方法表的话可以直接定位到这个方法,不需要去父类中依次查询了

下面是虚方法表的继承

是不是直接清晰明了。求个赞

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值