나는 상속에 약간의 문제가있다. 하위 클래스의 일부 속성이 동일하기 때문에 내가 한 것은 수퍼 클래스로 만들어졌습니다. 내가 슈퍼 클래스를 참조하려고자바 서브 클래스를 호출하는 슈퍼 클래스
, 나는 나는 그것이 private
필드에 액세스 할 것이다 그러나 어떻게 하위 클래스에서 상위 클래스에서 이름을 얻을 수 있다는 사실을 알고는 name has private access in the Superclass 'person'.
말을 컴파일되지 않습니다 라인 name = replacementName;
위에 super(name);
을 퍼팅 시도 방법?
다음은이 방법입니다.
public void changeName(String replacementName){
name = replacementName;
}
감사합니다. 당신의 슈퍼 클래스에 이름 속성에 개인 선언을 사용하여 공공 (또는 보호)의 getter/setter를 추가 -
1 :
이 코드가 제공하는 전체 클래스를 제공 할 수 있습니까? 귀하의 질문 자체가 당신이 달성하고자하는 것을 명확하게 설명하지는 않습니다. – MrHug
우리는 수퍼 클래스 필드 선언을 볼 필요가있을 것입니다.하지만 문제가 무엇인지 알 것 같습니다. 그냥 확인해야합니다! – Compass
슈퍼 클래스의'name'이 private이고 setter가 없다면 많은 규칙을 위반하지 않고 실제로 그렇게 할 수있는 방법이 없습니다. – Churk