분석 깊이 유사성과 차이점 클래스 및 인터페이스 초기화

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 나사산 주]

  

추천

출처www.cnblogs.com/linlf03/p/10990981.html