`
fxly0401
  • 浏览: 148859 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中父类方法与子类方法的执行顺序

阅读更多
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中的继承(子类调用父类构造方法还不懂).doc

    本文详细介绍了Java中的继承机制,重点讨论了子类如何调用父类构造方法、重写与重载的区别、多态的应用以及`instanceof`操作符的使用。理解这些概念对于编写高质量、可维护的Java代码至关重要。

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    再次详细说明在继承中的程序执行顺序,子类与父类到底哪个先执行

    本文将深入探讨在继承中的程序执行顺序,以及子类与父类的执行顺序问题。 首先,我们需要了解Java或Python等面向对象语言中类的构造过程。当一个类实例化时,其构造函数(在Java中是`构造器`,在Python中是`__init_...

    浅谈Java中父类与子类的加载顺序详解

    以下是Java中父类与子类加载顺序的详细解释: 1. **静态初始化**: - 首先,JVM会加载类的静态部分。这意味着先加载所有静态变量的初始化,并执行静态初始化块(如果有的话)。在给定的例子中,无论父类还是子类,...

    java父类和子类初始化顺序的深入理解

    在Java编程语言中,类之间的继承关系涉及到一个重要的概念——初始化顺序。当创建一个子类对象时,不仅子类的实例变量会被初始化,其父类的实例变量也会按一定的顺序进行初始化。理解这个顺序对于编写复杂的多层继承...

    java中子类继承父类,程序运行顺序的深入分析

    在Java编程语言中,子类继承父类是一种常见的面向对象特性,它允许子类获取父类的属性和方法,并且可以进行扩展或覆盖。本文将深入分析Java中子类继承父类时的程序运行顺序,这对于理解面向对象编程的执行机制至关...

    Java常见笔试、面试题目深度剖析,方法重写详解、静态代码块与构造方法执行顺序问题

    本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...

    Java4Android 19_子类实例化过程

    在Java编程语言中,子类继承父类是实现代码复用和扩展功能的重要手段。当一个子类实例化时,其实例化过程涉及到多个步骤,这些步骤不仅包括自身的构造器执行,还包括对父类构造器的调用。下面将详细阐述Java中子类...

    java构造方法

    在Java中,当子类继承父类时,子类的构造方法会隐式或显式地调用父类的构造方法。如果子类的构造方法没有明确调用父类的构造方法,那么Java会默认调用父类的无参构造方法。但如果父类中没有无参构造方法,或者需要在...

    java面试题静态加载顺序构造方法

    Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...

    Java 中方法的重载与覆盖

    ### Java中的方法重载(Overloading)与方法覆盖(Overriding) #### 方法的重载(Overloading) 在Java中,方法重载允许我们定义多个同名的方法,但这些方法之间必须具备不同的特征来区分它们。这有助于提高代码的...

    Java面向对象(进阶)- super关键字的使用与子类对象实例化全过程

    在Java编程语言中,面向对象编程是核心特性之一。...同时,子类对象实例化的过程是先执行父类构造器,再执行子类构造器,保证了对象初始化的顺序。理解和掌握这些概念对于编写高效的Java代码至关重要。

    Java方法继承、方法重载、方法覆盖总结

    7. **覆盖与隐藏的区别**: 当子类中定义了一个与父类同名但参数列表不同的方法时,这实际上是一种“隐藏”,而非覆盖。 #### 四、super关键字 **super关键字**在Java中用于指代当前对象的直接父类对象。它主要用于...

    Java 接口与继承

    5. 创建子类对象时,会按照一定的顺序进行初始化:首先是默认初始化,然后绑定构造方法参数,接着调用父类构造函数,最后执行实例变量的显性初始化和构造方法的主体代码。 接口在Java中是一种完全抽象的类,它只...

    javase子类父类继承关系图解

    在Java编程语言中,继承是面向对象特性的重要组成部分,它允许子类继承父类的属性和方法,从而实现代码的重用与扩展。标题“javase子类父类继承关系图解”指的是对这一概念的可视化展示,帮助初学者更好地理解Java中...

    由浅入深详解Java 类的实例化顺序

    在子类对象被实例化的过程中,变量、构造方法以及代码块三者的先后顺序为: 1. 父类的静态变量和静态代码块,按代码先后顺序执行 2. 子类的静态变量和静态代码块,按代码先后顺序执行 3. 父类的成员变量和普通...

    EnumTest--构造顺序:父类、类成员变量、子类.zip

    这是面向对象编程中的一个基本规则,即子类实例化时会先执行父类的构造方法。如果父类还有父类,这个过程会一直向上递归,直到最顶层的类(Object类)。 2. **类成员变量初始化**:在所有父类构造器执行完毕后,...

    Java中方法重写与方法重载的比较.pdf

    Java中的方法重写(Overriding)与方法重载(Overloading)是面向对象编程中两个重要的概念,它们在实现多态性和代码复用时起到关键作用。本文将深入探讨这两个概念,以及它们在Java编程中的具体应用和区别。 1. **...

    Java类继承初始化顺序

    如果子类中有与父类同名的方法或变量,`super`关键字可以帮助区分。 此外,继承还涉及到方法的覆盖。子类可以重写父类的方法,提供不同的实现。重写的方法必须具有相同的返回类型和参数列表,但可以有不同的访问...

    构造函数与静态块的执行顺序

    在探讨继承中子类与父类构造函数及静态块的执行顺序时,我们首先需要理解构造函数和静态块的基本概念及其在Java中的作用。构造函数主要用于初始化对象的状态,而静态块则是在类加载到内存中时执行的一段代码,通常...

Global site tag (gtag.js) - Google Analytics