Java学习之继承关系内存分配

Posted 如魚飲水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java学习之继承关系内存分配相关的知识,希望对你有一定的参考价值。

假设有C继承B,B继承A;

 

 继承会继承除private修饰的成员变量,方法。但不会继承构造器。 所以调用被继承下来的方法时,不需要指明主调者,但是调用构造器时,就需要指明主调者,那就是super。如果继承中出现了函数的覆盖,那么默认主调者就是本对象(实例方法)或本类(类方法),如果想要调用被覆盖的方法,就得使用super(实例方法)或父类名(类方法)。

当创建并初始化C的对象时,会优先调用B的构造器,然后发现B还有A这个父类,会优先调用A构造器,然后发现A有Object这个父类,会优先调用Object构造器。所以整个过程就是,从上依次往下执行构造器的内容。

调用构造器的目的是完成堆内存中对象的初始化,如果某个父类构造器含有带参数的构造器,那么其子类就必须显示地调用其父类的构造器(super),否则编译出错。

以上是关于Java学习之继承关系内存分配的主要内容,如果未能解决你的问题,请参考以下文章

并行计算学习之并行程序设计导论

JavaScript高级程序设计学习之变量作用域和内存问题

Java学习之强引用,弱引用,软引用 与 JVM

Java多线程学习之线程池详解

Java学习之数组

Java继承内存分配