자바를 사용하는 경우 하위 클래스가 수퍼 클래스의 인스턴스 변수를 쉐도우 처리 할 때 컴파일러 경고를 얻을 수있는 방법이 있습니까? 같은 이름? 예를 들어 :상속 - 같은 이름의 수퍼 클래스 변수를 섀도 잉 할 때의 경고
class A {
String variable;
A() {
variable = "A";
}
}
class B extends A {
int variable;
B() {
variable = 1;
}
}
B b = new B();
System.out.println("Variable value: " + b.variable + ", " + ((A) b).variable);
// prints out: "Variable value: 1, A"
나는 변수가 이미 존재한다는 것을 B
에 경고하고 싶습니다.
왜? 자신의 필드를 비공개로 설정하면 어쨌든 충돌하지 않습니다. – Robert
예기치 않은 버그를 만들 수 있기 때문에 모든 것을위한 전체 setter/getter 메서드를 작성하지 않을 때 프로토 타입 단계에서 알아두면 유용 할 수 있습니다. –
쉐도 잉 (shadowing)이라고하며 오버라이드하지는 않으며, 경고 할 수있는 옵션이 있습니다. – Robin