티스토리 뷰

반응형

⊙ 문제

 

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

 

 

Vehicle

Car

필드

String color; //자동차 색상

int speed; //자동차 속도

int displacement; //자동차 배기량

int gears; //자동차 기어 단수

메서드

void show()

void show()

생성자

public Vehicle(String, int)

public Car(String, int, int, int)

 

public class OverrideTest {
    public static void main(String[] args) {
        Car c = new Car("파랑", 200, 1000, 5);
        c.show();

        System.out.println();
        Vehicle v = c;
        v.show();
    }
}

 

 


 

⊙ 문제 접근 과정

 

오버라이딩을 확인해보자!

 


 

⊙ 문제 풀이

 

class Vehicle {
    static String color;
    static int speed;
    Vehicle(String color, int speed) {
        this.color = color;
        this.speed = speed;
    }
    static void show() {
        System.out.println("색상 : " +color);
        System.out.println("속도 : " +speed);
    }
}

class Car extends Vehicle {
    static int displacement;
    static int gears;
    Car(String color, int speed, int displacement, int gears) {
        super(color, speed);
        this.displacement = displacement;
        this.gears = gears;
    }
    static void show() {
        System.out.println("색상 : " +color);
        System.out.println("속도 : " +speed);
        System.out.println("배기량 : " +displacement);
        System.out.println("기어 단수 : " +gears);
    }

}

public class OverrideTest {
    public static void main(String[] args) {
        Car c = new Car("파랑", 200, 1000, 5);
        c.show();

        System.out.println();
        Vehicle v = c;
        v.show();
    }
}

 

 


⊙ 결과

 


⊙ 마무리

 

결과가 바뀌었다면 성공적으로 오버 라이딩된 것이다.

 

 

좋아요 로그인하지 않아도 누를 수 있습니다!

 

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함