构造函数(构造器)的调用顺序
来源:互联网 发布:联通蜂窝移动数据设置 编辑:程序博客网 时间:2024/06/06 18:10
package demo2;
class Meal {
Meal(){
System.out.println("Meal()");
}
}
class Bread {
Bread(){
System.out.println("Bread()");
}
}
class Cheese {
Cheese(){
System.out.println("Cheese()");
}
}
class Lettue {
Lettue(){
System.out.println("Lettue()");
}
}
class Lunch extends Meal {
Lunch(){
System.out.println("Lunch()");
}
}
class PortableLunch extends Lunch {
PortableLunch(){
System.out.println("PortableLunch()");
}
}
public class demo1 extends PortableLunch {
private Bread bread = new Bread();
private Cheese cheese = new Cheese();
private Lettue lettue = new Lettue();
public demo1(){
System.out.println("demo1()");
}
public static void main(String[]args){
new demo1();
}
class Meal {
Meal(){
System.out.println("Meal()");
}
}
class Bread {
Bread(){
System.out.println("Bread()");
}
}
class Cheese {
Cheese(){
System.out.println("Cheese()");
}
}
class Lettue {
Lettue(){
System.out.println("Lettue()");
}
}
class Lunch extends Meal {
Lunch(){
System.out.println("Lunch()");
}
}
class PortableLunch extends Lunch {
PortableLunch(){
System.out.println("PortableLunch()");
}
}
public class demo1 extends PortableLunch {
private Bread bread = new Bread();
private Cheese cheese = new Cheese();
private Lettue lettue = new Lettue();
public demo1(){
System.out.println("demo1()");
}
public static void main(String[]args){
new demo1();
}
}
打印结果:
Meal()
Lunch()
PortableLunch()
Bread()
Cheese()
Lettue()
demo1()
分析: 运行,进入demo1类的main方法,需要进行demo1的构造(生成),首先去调用基类的构造器,反复递归下去,然后初始化类中的成员,最后调用用户定义的demo1的构造方法.
补充:销毁顺序和构造顺序相反,就像资源的打开顺序和关闭顺序。
0 0
- 构造函数(构造器)的调用顺序
- 构造函数的调用顺序
- 构造函数调用顺序
- 构造函数调用顺序
- 构造函数调用顺序
- 构造函数调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 构造器的调用顺序
- 拷贝构造,构造函数,析构函数的调用顺序
- c++ 构造函数初始化列表,构造函数的调用顺序
- 构造函数的构造顺序
- 关于构造函数的调用顺序
- Mac下opencv的安装遇到的问题解决
- 工作以后......
- ROS进阶学习手记 2 -- RViz工具的学习1
- 【Unity】Unity中开场动画设置(二)
- 学习自定义View(二)仿58同城加载
- 构造函数(构造器)的调用顺序
- 浅尝Unity 3D的Asset Bundle知识(四)-----基础打牢篇
- sturct stat 结构体中 st_mode 的含义
- 新建Maven项目
- 【Struts2四】利用拦截器对登陆进行拦截的小案例
- Eclipse最有用快捷键整理
- java继承中覆盖时的注意事项,以及匿名类的使用
- 天声人語 20150716
- Android应用性能优化之分析工具[二]