2012-11-10 3 views
0

Java의 기본 메소드에서 하위 클래스의 속성에 액세스 할 수 있습니까?Java에서 하위 속성 가져 오기

public String getName() 
{ 
return name; 
} 

그러나 I 메인 메소드에서 명을 액세스 할 수 예를 들어, 확장 된 클래스 I는 속성 신장시키는 방법이있다. 감사합니다. .

+0

어떻게 코드에 액세스하려고합니까? 'String s = getName();'만하려고하면'main()'이 정적이기 때문에'getName()'을 호출하기 위해 객체의 인스턴스가 필요합니다. 또한 발생한 정확한 오류를 제공해야합니다. – amit

+0

나는 당신의 질문을 얻지 않는다, 당신은 정성 들여 좋은가? – Frank

답변

0

이름은 비공개 회원입니까? Main에있는 모든 클래스의 공개 멤버 (기본 클래스 또는 하위 클래스에 관계없이)에만 액세스 할 수 있습니다.

getName 자체에 액세스하지만 getName 자체에 액세스하는 경우 name이 기본 클래스에서 private로 정의되지 않은 경우 getName()이 작동해야합니다. 그것이 Protected, Public 또는 default 패키지 선언이라면, 작동해야합니다.

1

당신은 main 방법은 static 그대로의 name 필드를 얻기 위해 내부 Child 클래스의 예를을 만들어야 할 것입니다 :

public class Parent { 

    class Child { 
     String name; 

     public String getName() { 
      return name; 
     } 
    } 

    public static void main(String[] args) { 
     String name = new Parent().new Child().getName(); 
    } 
} 

getName() 자체는 될 수 static 정적 메서드로 선언 할 수 없습니다 정적 또는 최상위 수준 유형으로 선언됩니다.