JAVA子父类内部程序的执行顺序
******************************************************************
一、父类的静态成员赋值和静态块
二、子类的静态成员赋值和静态块
三、父类的成员赋值和初始化块
四、父类的构造方法
五、子类的成员赋值和初始化块
六、子类的构造方法
*********************************************************************
程序实例:
public class Student2 extends User2{
static{//静态块
System.out.println("D");
}
{//初始化块
System.out.println("E");
}
public Student2(){
System.out.println("F");
}
public Student2(String userName){
this.userName = userName;
System.out.println("Student2 : "+userName);
}
public void work(){
System.out.println(this.userName + "is work");
}
public static void main(String[] args) {
Student2 s = new Student2("zhangsan");
s.work();
}
{//若有两个初始化块,则顺序执行
System.out.println("G");
}
}
class User2{
protected String userName;
static{
System.out.println("A");
}
{
System.out.println("B");
}
public User2(){
System.out.println("C");
}
public User2(String userName){
System.out.println("User2 : "+userName);
this.userName = userName;
}
public void work(){
System.out.println("User2 : work");
}
}
结果输出为
A
D
B
C
E
G
Student2 : zhangsan
zhangsan is work
分享到:
相关推荐
本文详细介绍了Java中的继承机制,重点讨论了子类如何调用父类构造方法、重写与重载的区别、多态的应用以及`instanceof`操作符的使用。理解这些概念对于编写高质量、可维护的Java代码至关重要。
java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...
本文将深入探讨在继承中的程序执行顺序,以及子类与父类的执行顺序问题。 首先,我们需要了解Java或Python等面向对象语言中类的构造过程。当一个类实例化时,其构造函数(在Java中是`构造器`,在Python中是`__init_...
以下是Java中父类与子类加载顺序的详细解释: 1. **静态初始化**: - 首先,JVM会加载类的静态部分。这意味着先加载所有静态变量的初始化,并执行静态初始化块(如果有的话)。在给定的例子中,无论父类还是子类,...
在Java编程语言中,类之间的继承关系涉及到一个重要的概念——初始化顺序。当创建一个子类对象时,不仅子类的实例变量会被初始化,其父类的实例变量也会按一定的顺序进行初始化。理解这个顺序对于编写复杂的多层继承...
在Java编程语言中,子类继承父类是一种常见的面向对象特性,它允许子类获取父类的属性和方法,并且可以进行扩展或覆盖。本文将深入分析Java中子类继承父类时的程序运行顺序,这对于理解面向对象编程的执行机制至关...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
在Java编程语言中,子类继承父类是实现代码复用和扩展功能的重要手段。当一个子类实例化时,其实例化过程涉及到多个步骤,这些步骤不仅包括自身的构造器执行,还包括对父类构造器的调用。下面将详细阐述Java中子类...
在Java中,当子类继承父类时,子类的构造方法会隐式或显式地调用父类的构造方法。如果子类的构造方法没有明确调用父类的构造方法,那么Java会默认调用父类的无参构造方法。但如果父类中没有无参构造方法,或者需要在...
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...
### Java中的方法重载(Overloading)与方法覆盖(Overriding) #### 方法的重载(Overloading) 在Java中,方法重载允许我们定义多个同名的方法,但这些方法之间必须具备不同的特征来区分它们。这有助于提高代码的...
在Java编程语言中,面向对象编程是核心特性之一。...同时,子类对象实例化的过程是先执行父类构造器,再执行子类构造器,保证了对象初始化的顺序。理解和掌握这些概念对于编写高效的Java代码至关重要。
7. **覆盖与隐藏的区别**: 当子类中定义了一个与父类同名但参数列表不同的方法时,这实际上是一种“隐藏”,而非覆盖。 #### 四、super关键字 **super关键字**在Java中用于指代当前对象的直接父类对象。它主要用于...
5. 创建子类对象时,会按照一定的顺序进行初始化:首先是默认初始化,然后绑定构造方法参数,接着调用父类构造函数,最后执行实例变量的显性初始化和构造方法的主体代码。 接口在Java中是一种完全抽象的类,它只...
在Java编程语言中,继承是面向对象特性的重要组成部分,它允许子类继承父类的属性和方法,从而实现代码的重用与扩展。标题“javase子类父类继承关系图解”指的是对这一概念的可视化展示,帮助初学者更好地理解Java中...
在子类对象被实例化的过程中,变量、构造方法以及代码块三者的先后顺序为: 1. 父类的静态变量和静态代码块,按代码先后顺序执行 2. 子类的静态变量和静态代码块,按代码先后顺序执行 3. 父类的成员变量和普通...
这是面向对象编程中的一个基本规则,即子类实例化时会先执行父类的构造方法。如果父类还有父类,这个过程会一直向上递归,直到最顶层的类(Object类)。 2. **类成员变量初始化**:在所有父类构造器执行完毕后,...
Java中的方法重写(Overriding)与方法重载(Overloading)是面向对象编程中两个重要的概念,它们在实现多态性和代码复用时起到关键作用。本文将深入探讨这两个概念,以及它们在Java编程中的具体应用和区别。 1. **...
如果子类中有与父类同名的方法或变量,`super`关键字可以帮助区分。 此外,继承还涉及到方法的覆盖。子类可以重写父类的方法,提供不同的实现。重写的方法必须具有相同的返回类型和参数列表,但可以有不同的访问...
在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...