Java继承——父子类初始化
程序员文章站
2022-07-12 08:02:27
...
示例
class User{
public User() {
System.out.println("User's constructor...");
}
}
class Parent{
private User user = new User();
public Parent() {
System.out.println("Parent's constructor...");
}
}
class Children extends Parent{
private User user = new User();
public Children() {
System.out.println("Children's constructor...");
}
}
public class ExtendTest {
public static void main(String[] args) {
/**
* User's constructor...
* Parent's constructor...
* User's constructor...
* Children's constructor...
*/
new Children();
}
}
总结
- 静态只在类加载的时候执行且只执行一次;
- 非静态只有在实例化的时候执行,每次创建对象都执行;
- 静态在非静态之前执行,基类静态优先于衍生类静态执行;
- 静态属性和静态代码块的执行属性取决于它们在类中的位置,谁在前先执行谁;
- 非静态属性和构造代码块的执行顺序取决于它们在类中的位置,谁在前执行谁;
- 先初始化父类,在初始化子类。
上一篇: golang 之 init 函数
推荐阅读
-
子类可以继承父类的一切方法,成员变量,甚至是私有的,但是却不能够访问这些私有的成员变量和方法
-
python类继承与子类实例初始化用法分析
-
[Java] 父类和子类拥有同名的成员变量(fields)的情况
-
c/c++ 继承与多态 子类隐藏父类的同名非虚函数
-
java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?
-
Java学习笔记二十三:Java的继承初始化顺序
-
Java方法重写注意事项,附带继承,子类与父类相关内容
-
C++ 学习笔记 (六) 继承- 子类与父类有同名函数,变量
-
java基础-super(实参)的用法-子类调用父类的构造方法
-
C++ 子类继承父类纯虚函数、虚函数和普通函数的区别