>Java >java지도 시간 >Java에서 보호란 무엇입니까?

Java에서 보호란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-27 17:56:279051검색

protect는 일반적으로 사용 범위를 지정하는 Java의 권한 키워드입니다.

Java에서 보호란 무엇입니까?

protected:

부모 클래스의 protected 수정 클래스 멤버는 패키지 내에서 볼 수 있으며 해당 하위 클래스에서도 볼 수 있습니다.

상위 클래스와 하위 클래스가 동일한 패키지에 있지 않습니다. 하위 클래스는 상위 클래스에서 상속된 보호 멤버에만 액세스할 수 있지만 상위 클래스에서 인스턴스화한 멤버에는 액세스할 수 없습니다.

Protected 메소드의 가시성에 대한 다음 예를 통해 protected 키워드를 더 깊이 이해할 수 있습니다. 보호된 회원과 관련된 통화가 발생하면 먼저 보호된 회원이 어디에서 왔는지, 공개 범위가 무엇인지 확인해야 하며, 그런 다음 현재 사용이 가능한지 여부를 확인할 수 있습니다

예:

//示例一
package p1;
public class Father1 {
   protected void f() {}    // 父类Father1中的protected方法
}

package p1;
public class Son1 extends Father1 {}

package p11;
public class Son11 extends Father1{}

package p1;
public class Test1 {
   public static void main(String[] args) {
       Son1 son1 = new Son1();
       son1.f(); // Compile OK     ----(1)
       son1.clone(); // Compile Error     ----(2)

       Son11 son = new Son11();    
       son11.f(); // Compile OK     ----(3)
       son11.clone(); // Compile Error     ----(4)
   }
}

위의 예의 경우 , 먼저 (1) (3)을 살펴보세요. f() 메서드는 Father1 클래스에서 상속되고 해당 가시성은 패키지 p1과 해당 하위 클래스 Son1 및 Son11이며, f() 메서드를 호출하는 Test1 클래스가 위치하기 때문입니다. 패키지에서도 p1이므로 (1)과 (3)의 컴파일이 전달됩니다. 둘째, (2)(4)를 보십시오. "son1.clone();" 및 "son11.clone();"에 대한 java.lang 패키지 및 모든 하위 클래스가 표시됩니다. , two 사용자의 clone()은 Son1 및 Son11 클래스에 표시되지만 Test1에는 표시되지 않으므로 (1)과 (3)의 컴파일이 실패합니다.

요약

protected는 Java 클래스 멤버 액세스 권한 수정자 중 가장 이해하기 어려운 것입니다. 프로그래밍에서 protected와 관련된 호출이 발생하면 먼저 protected 멤버의 출처와 가시성 범위가 무엇인지 확인한 다음 이를 올바르게 사용해야 합니다.

위 내용은 Java에서 보호란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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