본문 바로가기
자바 프로그래밍/코딩

Car.Ex.java

by 세인트킴 2023. 6. 2.
class Car {
	String color;
	int speed;

	public Car(String color) {
		this.color = color;
		speed = 0;
	}

	public void engineStart() {
		System.out.println("engine start");
	}

	public void engineStop() {
		System.out.println("engine stop");
	}

	public void speedUp() {
		speed++;
		System.out.println("speed up(" + speed + ")");
	}

	public void speedDown() {
		if (speed > 0)
			speed--;
		System.out.println("speed down(" + speed + ")");
	}
}

class Convertible extends Car {
	public Convertible(String color) {
		super(color);
	}

	public void openRoof() {
		System.out.println("open roof");
	}

	public void closeRoof() {
		System.out.println("close roof");
	}
}

class DumpTruck extends Car {
	int cargoSize;

	public DumpTruck(String color, int cargoSize) {
		super(color);
		this.cargoSize = cargoSize;
	}

	public void dump() {
		System.out.println("dump");
	}
}

class FreezerTruck extends Car {
	int cargoSize;
	int temperature;

	public FreezerTruck(String color, int cargoSize, int temp) {
		super(color);
		this.cargoSize = cargoSize;
		temperature = temp;
	}

	public void setTemperature(int temp) {
		temperature = temp;
		System.out.println("set temperature(" + temperature + ")");
	}
}

public class CarEx {
	public static void main(String[] args) {
		Convertible c = new Convertible("red");
		System.out.println("Convertible: ");
		c.engineStart();
		c.speedUp();
		c.openRoof();
		c.closeRoof();
		c.speedDown();
		c.engineStop();
		System.out.println();

		DumpTruck d = new DumpTruck("blue", 10);
		System.out.println("Dump truck: ");
		d.engineStart();
		d.speedUp();
		d.speedDown();
		d.dump();
		d.engineStop();
		System.out.println();

		FreezerTruck f = new FreezerTruck("blue", 10, 0);
		System.out.println("Freezer truck: ");
		f.engineStart();
		f.setTemperature(-20);
		f.speedUp();
		f.speedDown();
		f.engineStop();
		System.out.println();
	}
}

'자바 프로그래밍 > 코딩' 카테고리의 다른 글

9-weeks  (0) 2023.06.07
8-weeks  (0) 2023.06.07
QuadraticEquationSolver.java  (0) 2023.05.26
CurrencyConverter.java  (0) 2023.05.22
AlarmTime.java  (0) 2023.05.12