继承的细节

继承的细节

继承使用的的细节

  • 子类继承了父类中所有的属性和方法,非私有的属性和方法可以在子类中直接访问,私有的属性和方法需要通过父类中的公共的方法去完成访问。
  • 子类必须调用父类的构造器,完成父类的初始化。
  • 创建一个子类对象的时候,不管是使用哪个子类的构造器,默认情况下都会去调用父类的无参构造器,如果父类中没有无参构造器,那么子类的构造器需要使用super()去指定是使用父类中的那个构造器去完成父类的初始化工作,否则,编译会无法通过。
  • 如果希望指定的去调用父类中的某个构造器,则需要显示的调用一下。
  • super在使用的时候,必须放在构造器中的第一行(super)只能在构造器中使用。
  • super()和this()都只能放在构造器第一行,所以两个方法不能共存在一个构造器中。
  • Java中所有的类都是Object类的子类。
  • 父类中的构造器不限于直接父类,会向上一直追溯到Object类。
  • 子类最多只能继承一个父类,Java是单继承机制。

继承的内存布局

    public static void main(String[] args) {
        Son son = new Son();
    }
}
class GrandPa {
    String name = "爷爷";
    String hobby = "旅游";
}
class Father extends GrandPa{
    String name = "爸爸";
    int age = 39;
}
class Son extends Father{
    String name = "儿子";
}

对该代码段进行内存分析

ca3f56650c97a433f3d1d3d2a0d3957b.pngca3f56650c97a433f3d1d3d2a0d3957b.png

创建一个新的Son对象的时候,会先加载类,会在方法区中体现继承关系,Object,GrandPa,Father,Son,做完后在堆里面分配地址空间,分配完后Son对象的地址返回给主方法。

posted @   AINIBYM  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示