//Car.java
public class Car
{
private String carname; //차 이름
protected int speed; //차 속도를 수정해야하기 때문에 protected
public Car() {}
public Car(String carname) //생성자
{
this.carname = carname; //차 이름
this.speed = 100; //차 속도 설정 (100이 기본)
}
public String getName()
{
return this.carname;
}
public int getSpeed()
{
return this.speed;
}
public void setSpeedUp()
{
speed += 10;
}
public void setSpeedDown()
{
speed -= 10;
}
}
//Sedan.java
public class Sedan extends Car
{
private String carname; //차 이름
public Sedan() {}
public Sedan(String carname, int speed)
{
this.speed = speed; //차 속도 설정, 부모변수에 입력
this.carname = carname; //차 이름 설정
}
public String getName()
{
return this.carname;
}
public int getSpeed()
{
return this.speed;
}
public void setSpeedUp()
{
speed += 20;
}
public void setSpeedDown()
{
speed -= 20;
}
}
//Truck.java
class Truck extends Car
{
private String carname;
public Truck() {}
public Truck(String carname, int speed)
{
this.carname = carname; //차 이름 설정
this.speed = speed; //차 속도 설정, 부모변수에 입력
}
public String getName()
{
return this.carname;
}
public int getSpeed()
{
return this.speed;
}
public void setSpeedUp()
{
super.speed += 5;
}
public void setSpeedDown()
{
super.speed -= 5;
}
}
//CarTest.java
public class CarTest
{
public static void main(String[] args)
{
Car[] carList = new Car[5];
carList[0] = new Car("재규어"); //부모 클래스 호출
carList[1] = new Sedan("K5", 100); //자식 클래스 호출
carList[2] = new Truck("포터", 100); //자식 클래스 호출
carList[3] = new Sedan("아반떼", 100);
carList[4] = new Truck("볼보", 100);
for(int i = 0; i < carList.length; i++) //배열 수 만큼 출력
{
System.out.println("차명 : " + carList[i].getName()); //차 이름 출력
System.out.println("현재 속도 : " + carList[i].getSpeed()); //현재 속도 출력
System.out.println("속도 업!");
carList[i].setSpeedUp(); //속도 업
System.out.println("현재 속도 : " + carList[i].getSpeed());
System.out.println("속도 다운!");
carList[i].setSpeedDown();
System.out.println("현재 속도 : " + carList[i].getSpeed());
System.out.println("속도 다운!");
carList[i].setSpeedDown();
System.out.println("현재 속도 : " + carList[i].getSpeed());
System.out.println();
}
}
}
java CarTest
차명 : 재규어
현재 속도 : 100
속도 업!
현재 속도 : 110
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 90
차명 : K5
현재 속도 : 100
속도 업!
현재 속도 : 120
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 80
차명 : 포터
현재 속도 : 100
속도 업!
현재 속도 : 105
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 95
차명 : 아반떼
현재 속도 : 100
속도 업!
현재 속도 : 120
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 80
차명 : 볼보
현재 속도 : 100
속도 업!
현재 속도 : 105
속도 다운!
현재 속도 : 100
속도 다운!
현재 속도 : 95