2014-11-04 1 views
0

자바에서는 내 관점에서 볼 때 기본 표시 클래스가 protected 구성원을 갖는 것은 의미가 없습니다. 자바 기본 가시성 = 패키지 레벨 자바 = (관계없이 패키지) 패키지 레벨 + 서브 클래스Java 클래스의 기본 가시성에 보호 된 멤버가있을 수 있습니까?

class TestClass{ 

protected int addIntegers(int a, int b){ 

     return (a+b); 
} // end of protected addIntegers(int a, int b){ 

} 

가 있습니까에 대한 가시성을 보호하기 때문에 볼 수있는 내 관점에서, 내가 말을 정정 이해가되지 않습니다 위의 코드는 넌센스인가?

답변

2

Foo를 확장하고 보호 된 메서드를 재정의하면 동일한 패키지에 기본 클래스를 확장하고 다른 클래스 Bar를 확장하여 공용 클래스 Foo를 가질 수 있습니다.

package a; 

class Base { 
    protected void bang() { 
    } 
} 

package a; 

public class Foo extends Base { 
} 

package b; 

public class Bar extends Foo { 
    @Override 
    protected void bang() { 
    } 
} 
+0

Good Catch !!! 그래서 이것은 기본 보이는 클래스와 연관된 패키지 외부의 클래스에서 기본 보이는 클래스에 속해있는 보호 된 메소드를 보는 방법입니다. 좋은 캐치 !! –

관련 문제