码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-10-24 13:35:21      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:ima   对象   初始化   inf   实例   父类   技术   方法   object   

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

技术图片

 

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

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

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

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

标签:ima   对象   初始化   inf   实例   父类   技术   方法   object   

原文地址:https://www.cnblogs.com/Luck-365/p/11731534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!