반응형

[쉽게 배우는 자바 프로그래밍] 

        Chapter 06. 상속

            프로그래밍 문제

 

4. 메서드는 자식 클래스가 오버라이딩할 수 있지만, 필드는 자식 클래스가 오버라이딩할 수 없다. 

다음 표를 참고해 Parent와 Parent의 자식인 Child를 클래스로 작성하고, 이를 아래에 있는 OvershadowTest 프로그램으로 테스트하시오.

 

  Parent Child
필드 String name="영조" String name="사도세자"
메서드 void print() void print()

 

 

1
2
3
4
5
6
7
public class OverShadowTest {
    public static void main(String[] args) {
        Parent p = new Parent();
        System.out.println(p.name);
        p.print();
    }
}

 

영조
나는 사도세자이다.

 


        [ Parent.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Parent {
 
    String name;
    
    Parent() {
        name = "영조";
    }
    
    public Parent(String name) {
        this.name = name;
    }
 
    void print() {
        System.out.println(name);
    }
 
}

 

        [ Child.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class Child extends Parent {
 
    String name;
    
    Child() {
        name = "사도세자";
    }
    
    public Child(String name) {
        this.name = name;
    }
    
    void print() {
        System.out.println("나는 " + name + "이다.");
    }
    
}

 

        [ OvershadowTest.java ]

1
2
3
4
5
6
7
8
9
10
11
public class OvershadowTest {
 
    public static void main(String[] args) {
 
        Parent p = new Child();
        System.out.println(p.name);
        p.print();
 
    }
 
}

 

반응형