继承与物件的初始化顺序
时间:2011-09-26
来源:互联网
1 |
class A{ public A() { System.out.println("A"); } } class B extends A{ public B(){ System.out.println("B"); } } public class C extends B{ A a=new A(); public C(){ System.out.println("C"); } public static void main(String arg[]){ C c=new C(); } } output=ABAC |
不好意思,想请问一下在继承关系下,父类别的实体与成员初始化是在进入C类别的建构子之前就产生的,还是在C的建构子透过super()处层层呼叫产生的?
从结果来看在产生c物件之前,A类别与B类别及已先后产生实体并已初始化,然后产生c物件后才对成员物件a进行初始化,再进入建构子C(),因此会印出ABAC
作者: fann0731 发布时间: 2011-09-26
根据语法规则,建构式的第一行,如果没有呼叫 super 方法的话…
会自动补上
会自动补上
作者: ddtet 发布时间: 2011-09-26
ddtet wrote:
根据语法规则,建构式的第一行,如果没有呼叫 super 方法的话…
会自动补上
根据语法规则,建构式的第一行,如果没有呼叫 super 方法的话…
会自动补上
作者: fann0731 发布时间: 2011-09-26
你要的答案在你的引言往下两行
作者: ddtet 发布时间: 2011-09-26
ddtet wrote:
你要的答案在你的引言往下两行
你要的答案在你的引言往下两行
作者: fann0731 发布时间: 2011-09-26
唔…我辞穷了…
super() 表示父类别的建构式,B 是 C 的父类别,A 是 B 的父类别
super() 表示父类别的建构式,B 是 C 的父类别,A 是 B 的父类别
作者: ddtet 发布时间: 2011-09-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28