Java 가상 머신이 클래스를 초기화 할 때, 부모 클래스의 모든에 요구하는 것은 초기화하지만,이 규칙에 적합한 인터페이스가 아닌 한
클래스를 초기화하고, 클래스 인터페이스를 초기화하지 않을 때는 1)을 구현한다.
2) 인터페이스를 초기화하고, 상위 인터페이스를 초기화하지 않을 때
따라서, 부모 인터페이스 및 하위 인터페이스는 클래스의 초기화 또는 초기화를 구현하지 않기 때문에. 때만 렌즈 가변 특정 인터페이스를 사용하여 처음 프로그램 인터페이스의 초기화를 야기 할 것이다.
클래스가 초기화 및 인터페이스를 초기화되지 않습니다 때 클래스의 구현 샘플
공용 클래스 MyTest5 { 공공 정적 무효 메인 (문자열 []에 args) { 에서 System.out.println (MyChild5.b); } } 인터페이스 MyParent5 { 공공 정적 스레드 스레드 = 새로운 스레드 () { { //实例化代码块 에서 System.out.println는 ( "5 MyParent 호출"); } }; } 클래스 MyChild5는 MyParent5 {구현 공용 정적 지능 B = 6; }
인쇄 결과
6
액세스 인터페이스는 클래스를 변경하는 경우
공용 클래스 MyTest5 { 공공 정적 무효 메인 (문자열 []에 args) { 에서 System.out.println (MyChild5.b); } } 클래스 MyParent5 { 공공 정적 스레드 스레드 = 새 스레드 () { { //实例化代码块 에서 System.out.println이 ( "MyParent 5 호출"); } }; } 클래스 MyChild5는 MyParent5 {연장 공개 정적 지능 B = 6; }
그것은 인쇄됩니다
MyParent 5는이 문장을 호출.
초기화 인터페이스에서, 그리고 부모 인터페이스를 초기화되지 않습니다
공용 클래스 MyTest5 { 공공 정적 무효 메인 (문자열 []에 args) { 에서 System.out.println (MyParent5_1.thread); } } 인터페이스 MyGrandpa5_1 { 공공 정적 스레드 스레드 = 새 스레드 () { { //实例化代码块 에서 System.out.println ( "MyGrandpa5_1가 호출"); } }; } 인터페이스 MyParent5_1 { 공공 정적 스레드 스레드 = 새 스레드 () { { //实例化代码块 에서 System.out.println ( "MyParent5_1가 호출"); } }; }
인쇄 결과
MyParent5_1가 호출 스레드 [0,5 나사산 주]