12장. 객체지향 언어로 말하기

12.1 UML과 클래스 다이어 그램

  • 많은 라인의 코드를 보면 큰 그림에 집중하는 것이 어려워 UML(Unified Modeling Language)을 사용 하였다.
  • Airplane 클래스에 대한 골격 코드를 작성 하시오

Airplane.java


public class Airplane{

  private int speed;

  public Airplane(){
  }

  public void setSpeed(int speed){
    this.speed = speed;
  }

  public int getSpeed(){
    return speed;
  }
}

12.2 다음내용 : 상속

  • 한 클래스가 다른 클래스의 행동을 상속하고 필요하면 행동을 수정할 수 있다.
  • 상속은 다른 클래스를 기반으로 클래스를 만들게 하고, 중복되는 코드를 피할 수 있게 한다.

Airplane.java



//Jet는 Airplane의 서브클래스다, Airplane은 Jet에 대한 슈퍼클래스다.
//extends 키워드를 사용하여 상속을 구현다.
public class Jet extends Airplane{

  private static final int MULTIPLIER = 2;

  public Jet(){
    //super키워드는 슈퍼클래스(Airplane)의 생성자를 호출한다.
    super();
  }

  //슈퍼클래스의 행동을 변경할 수 있는데 이를 오버라이드라 한다.
  public void setSpeed(int speed){
    super.setSpeed(speed * MULTIPLIER);
  }

  public void accelerate(){
    //getSpeed()는 슈퍼클래스의 메소드이다.
    super.setSpeed(getSpeed() * 2);
  }
}

12.3 그리고 다형성도 살펴 봅시다.

  • 다형성은 상속과 밀접히 관련되어 있다.
  • 한 클래스가 다른 클래스를 상속하면, 다형성은 서브 클래스가 슈퍼 클래스를 대신할 수 있도록 허용한다.
 
Airplane plane = new Airplane();
Airplane plane = new Jet();
Airplane plane = new Rocket(); //Rocket도 Airplane의 서브클래스이다.

문서에 대하여