반응형

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

        Chapter 06. 상속

            프로그래밍 문제

 

6. 운송 수단과 운송 수단의 하나인 자동차를 다음과 같이 모델링하려고 한다. 각 클래스의 show() 메서드는 필드값을 출력한다. 두 클래스를 작성하고 아래 테스트 프로그램 OverrideTest를 실행해서 오버라이딩된 메서드와 다형성 관계를 살펴보시오.

 

  Vehicle Car
필드 String color;  // 자동차 색상 int displacement;  // 자동차 배기량
메서드 void show() void show()
생성자 public Vehicle(String, int) public Car(String, int, int, int)

 

1
2
3
4
5
6
7
8
9
10
public class OverrideTest {
    public static void main(String[] args) {
        Car c = new Car("파랑"20010005);
        c.show();
 
        System.out.println();
        Vehicle v = c;
        v.show();
    }
}

 


        [ Vehicle.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Vehicle {
 
    String color;
    int speed;
 
    public Vehicle(String color, int speed) {
        this.color = color;
        this.speed = speed;
    }
 
    public void show() {
        System.out.println("color : " + color);
        System.out.println("speed : " + speed);
    }
 
}

 

 

        [ Car.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Car extends Vehicle {
 
    private int displacement;
    private int gears;
 
    public Car(String color, int speed, int displacement, int gears) {
        super(color, speed);
        this.displacement = displacement;
        this.gears = gears;
    }
 
    public void show() {
        System.out.println("color : " + color);
        System.out.println("speed : " + speed);
 
        /**/
        System.out.println("displacement : " + displacement);
        System.out.println("gears : " + gears);
    }
 
}

 

 

        [ OverrideTest.java ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class OverrideTest {
 
    public static void main(String[] args) {
 
        Car car = new Car("파랑"20010005);
        car.show();
 
        System.out.println();
        Vehicle vehicle = car;
        vehicle.show();
 
    }
 
}

 

 

반응형