>Java >Java시작하기 >파생 클래스 객체를 생성할 때 생성자의 실행 순서는 무엇입니까?

파생 클래스 객체를 생성할 때 생성자의 실행 순서는 무엇입니까?

王林
王林원래의
2020-07-08 15:55:219697검색

파생 클래스 객체를 생성할 때 생성자의 실행 순서는 기본 클래스 생성자, 파생 클래스 객체 멤버 생성자, 파생 클래스 자체의 생성자입니다. 객체가 생성될 때 코드 로딩 순서는 정적 코드, 비정적 코드, 생성자 메서드입니다.

파생 클래스 객체를 생성할 때 생성자의 실행 순서는 무엇입니까?

파생 클래스 객체를 생성할 때 생성자의 실행 순서는 기본 클래스 생성자, 파생 클래스 객체 멤버 생성자, 파생 클래스 자체의 생성자입니다.

(추천 튜토리얼: Java 시작하기 프로그램)

상세 소개:

객체 생성 시 코드 로딩 순서는 정적 코드 --> 비정적 코드 --> 생성자 메서드입니다.

상위 클래스를 상속하는 경우 로드 순서는 다음과 같습니다. 상위 클래스의 정적 코드 --> 하위 클래스의 정적 코드 --> 상위 클래스의 메소드 -- > 하위 클래스의 비정적 코드 -->

그 중 정적 코드에는 정적 메서드, 정적 변수, 정적 코드 블록 등이 포함되며, 비정적 코드에는 멤버 메서드, 멤버 변수, 멤버 코드 블록 등이 포함됩니다. 위에 쓰여진 내용이 먼저 로드됩니다.

(동영상 튜토리얼 추천: java 동영상 튜토리얼)

예:

public class ExtendsTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		C c = new D();
	}

}

class C {
	static {
		System.out.println("C 基类静态域 ");
	}
	{
		System.out.println("C 基类对象成员构造函数");
	}

	public C() {
		System.out.println("C 基类本身的构造函数");
	}
}

class D extends C {
	static {
		System.out.println("D 派生类静态域");
	}
	{
		System.out.println("D 派生类对象成员构造函数");
	}

	public D() {
		System.out.println("D 派生类本身的构造函数");
	}
}

출력 결과:

파생 클래스 객체를 생성할 때 생성자의 실행 순서는 무엇입니까?

위 내용은 파생 클래스 객체를 생성할 때 생성자의 실행 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.