protect는 일반적으로 사용 범위를 지정하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!