박성우기 2015. 9. 18. 09:43
반응형


class Car {


public int speed;

public int gear;

public String color;


public int getSpeed() {

return speed;

}


public void setSpeed(int speed) {

this.speed = speed;

}


public int getGear() {

return gear;

}


public void setGear(int gear) {

this.gear = gear;

}


public String getColor() {

return color;

}


public void setColor(String color) {

this.color = color;

}


@Override

public String toString() {

return "Car [speed=" + speed + ", gear=" + gear + ", color=" + color + "]";

}


public void speedUp(int increment) {

speed += increment;

}


public void speedDown(int decrement) {

speed -= decrement;

}


}


class SportsCar extends Car {

boolean turbo;

public void setTrubo(boolean newValue) {
turbo = newValue;

}

public void speedUp(int increment) {

if (turbo) {
speed += (2 * increment);
} else
speed += increment;

}

@Override
public String toString() {
return "속도 : " + speed + "\n터보여부 : " + turbo;
}

}

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub

SportsCar c = new SportsCar();
c.color = "Red";
c.speed = 50;
c.setGear(3);
c.speedUp(20);
System.out.println(c);
c.setTrubo(true);
c.speedUp(20); // 터보가 켜져서 20의 2배인 40이 적용되었다

System.out.println(c);
}

}






SportsCar는 Car class를 상속받고


SportsCar만의 터보 변수를 추가하였다


그리고 터보가 true상태면 입력받은 속도의 2배가 적용되도록 하였다.




반응형