父类与子类的构造顺序
来源:互联网 发布:yii2 开源 cms 编辑:程序博客网 时间:2024/05/18 05:44
今天有人问我父类跟子类的构造顺序问题,写了个例子,姑且记一下
直接上代码吧
先是父类:
package cn.extend;public class Parent { String name; int age; static String sex;public Parent() {System.out.println("Praent constructor is excuting");// TODO Auto-generated constructor stubthis.name="Parent";this.sex="female";}public void test(){System.out.println("Praent's method test is excuting");}}
再是子类:
package cn.extend;
public class Son extends Parent {
public Son() {
// TODO Auto-generated constructor stub
System.out.println("Son constructor is excuting");
// this.name="Son";
// this.sex="male";
}
@Override
public void test() {
// TODO Auto-generated method stub
System.out.println("Son's method test is excuting");
}
/**
* add by liuchg
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Son son= new Son();
son.test();
System.out.println(son.name);
System.out.println(son.sex);
}
}
结果:
Praent constructor is excuting
Son constructor is excuting
Son's method test is excuting
Parent
female
说明在创建子类对象时,先调用父类的构造器,再调用子类的构造器;
将标红的代码去掉注释,执行结果如下:
Praent constructor is excuting
Son constructor is excuting
Son's method test is excuting
Son
male
子类继承父类,是把父类属性(public或者默认权限的、protected)继承下来,然后调用父类的构造函数来初始化这些属性,直致所有这些继承下来属性都初始化完毕,注:protected必须是在同一个包下。初始化顺序如下:
1.初始化父类 static 成员。2.初始化子类 static 成员。3.初始化父类非 static 成员。4.初始化子类非 static 成员。5.调用父类 构造器6.调用子类 构造器
- 父类与子类的构造顺序
- 关于父类与子类的构造函数调用顺序
- 子类与父类构造方法执行顺序
- 子类与父类构造函数顺序,包括静态…
- 子类与父类构造函数顺序,包括静态变量
- 有父类的子类实例化时,子类与父类的成员变量,构造函数,代码块的执行顺序
- java中的加载顺序以及父类与子类的构造方法
- 父类与子类的静态代码块、代码块、构造方法执行顺序
- c++ 中子类与父类构造析构的调用和顺序
- 子类与父类的构造器
- c++ 子类父类 的构造函数调用顺序
- c++中 子类父类的构造函数调用顺序
- c++ 子类父类 的构造函数调用顺序
- 继承-父类子类构造函数的运行顺序
- 父类与子类的执行顺序
- 子类父类构造函数调用顺序
- java中父类与子类构造函数的执行顺序
- [C#]父类与子类的静态成员变量、实例成员变量、构造函数的执行顺序
- MySQL#利用子查询更新
- 基于 CMS 数字签名的 Ticket-based SSO
- Linux命令之非交互SSH密码验证-sshpass
- 攻略强制换行与强制不换行
- 实例:实现动态网页的静态缓存
- 父类与子类的构造顺序
- LeetCode[Map]: Longest Consecutive Sequence
- iOS游戏安全之IPA破解原理及防御
- 7 animation 旋转、透明、缩小
- pat 1056
- 新建Oracle用户和表空间
- 雷军豹变
- swift UI专项训练33 Switch开关
- eclipse的字体颜色修改