는 다음과 같은 불법 코드를 살펴 보자이 상속 기능을 이해 해달라고 : - 여기내가
class WrongCode{
int i;
static int i;
}
를, 컴파일러는 우리가 같은 클래스에서 중복 필드가 있다고 말한다.
이제 동일한 파일에서 다음 클래스를 고려하십시오.
class Parent{
int i = 10;
}
class Child extends Parent{
static int i = 100;
}
public class Main{
public static void main(String ... aaa){
Parent ob = new Child();
System.out.println(ob.i); // This prints Parent's i
}
}
실제 개체가 하위 개체이므로 하위 개체를 참조하지 않아야합니까? 그리고 그것이 부모의 "i"를 참조한다면, 어떤면에서 부모의 "i"가 자신의 정적 "i"와 함께 자신의 클래스에있는 것입니다. 허용되지 않습니다.
자식 정적 i 부모 오버플로 i. 그리고 부모는 정적이 아니므로 className이 아닌 instance를 사용하여 직접 액세스하는 방법은 무엇입니까?
파생 된 'i'를 얻기 위해'Child ob = new Child();'를 시도하십시오. –
Child 클래스에서 정적이 아니며 어떤 일이 발생하는지 확인 하시겠습니까? 그것은 여전히 부모를 인쇄해야합니다. –
@ beta_icon 아이디에서 정적이 아닌 것을 만드는 것은 같은 결과를 가져옵니다. – whitehat