최대 1 분 소요

상속(Inheritance)

  • 자바에서는 클래스의 메서드와 속성을 다른 클래스로 상속할 수 있습니다.
  • 상속 관계는 2가지로 나눌 수 있습니다.
    • 자식클래스(subclass) - 다른 클래스로부터 상속 받음
    • 부모클래스(superclass) - 다른 클래스에 상속함
  • extends라는 단어를 사용하여 상속을 받을 수 있습니다.
  • Car 클래스는 자식클래스로 Vehicle 클래스는 부모클래스로 예를 들어보겠습니다.
    class Vehicle {
    protected String brand = "Ford"; // Vehicle 속성
    public void honk() { // Vehicle 메서드
      System.out.println("부릉부릉!");
    }
    }
    
    class Car extends Vehicle {
    private String modelName = "Mustang"; // Car 속성
    
    public static void main(String[] args) {
    
      // MyCar 객체 생성
      Car myCar = new Car();
    
      // myCar 객체를 통해 Vehicle 클래스에 있는 honk() 메서드 호출
      myCar.honk();
    
      // Vehicle 클래스의 brand 속성과 Car 클래스의 modelName 속성 출력
      System.out.println(myCar.brand + " " + myCar.modelName);
    }
    }
    
  • 상속을 사용하는 이유
    • 코드 재사용이 용이함.
    • 다음에 배울 다형성에 필요함.

상수(final)

  • 클래스가 상속하기를 원치 않는다면 class 앞에 final을 적으시면 됩니다.
    final class Vehicle {
    ...
    }
    class Car extends Vehicle {
    ...
    }
    // 상수는 상속 받지 못함으로 에러 발생