2016-09-02 2 views
0

가 있습니까? 기본 클래스 속성을 상속 받거나 런타임에 오류가 발생합니까? 이 속성들에 대한 getter와 setter는 어디에 있어야합니까?은 내가 <code>Abstract</code> 클래스가 같은 추상 클래스의 속성 이름과 그 자식 클래스 시나리오

+4

쉽게 들리겠습니까? –

+0

나에게 오류가 발생하지 않기 때문에 나는 호기심을 보인다. – MDaniyal

+0

부모의 값이 표시되지 않습니다. – Kelvin

답변

0

Subclass 속성은 부모 클래스 속성을 숨 깁니다. 이것은 shadowing을 호출하고 java에서 허용됩니다. 그것을 피하는 것이 가장 좋습니다. 다음 코드 샘플을 통해이를 확인할 수 있습니다.

public class ClassChild extends ClassParent { 
    private Integer id; 
    private String message; 

    ClassChild(Integer id, String message) { 
     this.id = id; 
     this.message = message; 
    } 

    @Override 
    public String toString() { 
     return "ClassChild{" + 
       "id=" + id + 
       ", message='" + message + '\'' + 
       '}'; 
    } 

    public static void main(String[] args) { 
     ClassChild cs = new ClassChild(1, "Test"); 

     System.out.println(cs); 
     System.out.println(cs.message); 
     System.out.println(cs.id); 
     System.out.println(((ClassParent)cs).id); 
     System.out.println(((ClassParent)cs).message); 

    } 
} 
관련 문제