자바로 작업 한 이후로 꽤 오래간만에 꽤 많은 경험이 있습니다. 대부분 상위 레벨의 특정 언어, 스크립팅 언어 및 정렬로 작성하는 경우가 대부분입니다.하위 클래스의 변수 값 변경?
클래스 구성원의 기본값을 지정하는 개념을 이해하지 못한다고 가정합니다.
// parent
public class A {
protected int value = 0;
public void print() {
System.out.println(value);
}
}
// child class
public class B extends A {
int value = 1;
}
짧게 유지는, B의 인스턴스를 생성하고() 인쇄를 호출하면
I "는 일반적인 식별자의 일종 인보다는 가정 A. 설정"값 "의 원래 값을 출력 이 객체가 소유 한 'value'라는 변수는 "A에 정의 된 함수는 B보다"값 "에 대해 완전히 다른 컨텍스트를가집니다.
특정 클래스의 공통 변형을 구성하지만 해당 클래스의 하위를 만드는 다른 방법은 있습니까? 어떤 종류의 팩토리 객체입니까? 클래스의 모든면을 재정의해야하므로 인터페이스가 답이 아닌 것 같아요. 그래서 그렇게하지 않아도됩니다.
도움을 주시면 감사하겠습니다.
선언'값 ':
여기에 자세한 내용입니다.'B'에 대한 생성자를 만들고 거기에'value = 1'을 설정해야합니다. – azurefrog
자세한 내용은 [필드 숨기기] (http://docs.oracle.com/javase/tutorial/java/IandI/hidevariables.html)를 참조하십시오. – azurefrog
필드 숨기기가이 질문의 범인이 아닙니다. 필드 숨김으로 B.value는 A.value를 숨 깁니다. 대신 영업 담당자는 A.value를 얻고 B.value를 예상합니다. –