java - 상속 Car 예제

imjingu·2023년 8월 22일
0

개발공부

목록 보기
404/481

속성 : 제조사(maker), 모델 이름(model), 색상(color), 현재 속도(curSpeed)
행위 : 가속(speedUp), 감속(speedDown)

  1. 이 속성과 행위 설명을 바탕으로 하는 Car 클래스를 정의 하라, 단 가속과 감속의 결과는 curSpeed와 연동되어야 한다.
  2. 정의한 Car 클래스에 파라미터로 모든 필드를 초기화 하는 생성자를 추가하고, 속성이 다른 인스턴스 세개를 생성하라
  3. Car 클래스를 상속받는 SportCar 클래스를 정의하고, 가속과 감속메서드를 스포츠카에 맞게 오버라이딩 하라
package chapter20230822.test08;


class Car {
	private String maker, model, color;
	protected int curSpeed;

	public Car(String maker, String model, String color, int curSpeed) { // 생성자
		this.maker = maker; // 어디다가 저장할건지
		this.model = model;
		this.color = color;
		this.curSpeed = curSpeed;
	}
	
	public void speedUp() { // 가속메서드
		this.curSpeed ++;
	}
	
	public void speedDown() { // 감속메서드
		this.curSpeed --;
	}

	@Override
	public String toString() {
		return "Car [maker=" + maker + ", model=" + model + ", color=" + color + ", curSpeed=" + curSpeed + "]";
	}
	
}

class SportCar extends Car {
	
	public SportCar (String maker, String model, String color, int curSpeed) {
		super(maker, model, color, curSpeed);
		
	}
	@Override
	public void speedUp() {
		this.curSpeed += 10;
	}
	
	@Override
	public void speedDown() {
		this.curSpeed -= 10;
	}
	
}
	
public class test_car {
	public static void main(String[] args) {
		Car car1 = new Car("현대", "소나타", "검정", 0);
		Car car2 = new Car("테슬라", "모델1", "파랑", 0);
		SportCar sportCar = new SportCar("아우디", "a6", "회색", 0);
		System.out.println(car1);
		System.out.println(car2);
	}
	
}

0개의 댓글