less than 1 minute read

상속이란 무엇인가

  • 하나의 클래스가 다른 클래스의 필드와 메서드를 물려받는 OOP의 개념.

상속의 특징

  • 상속을 받는 클래스를 자식(서브) 클래스, 상속을 하는 클래스를 부모(수퍼) 클래스라고 한다.
  • 자식 클래스가 extends 키워드를 사용하여 부모로부터 상속을 받는다.
  • 자식 클래스가 super 키워드를 사용하여 부모 클래스를 참조할 수 있다.
  • 부모 클래스가 sealed 키워드를 사용하여 상속받을 수 있는 클래스를 한정지을 수 있다.
  • 자식 클래스가 상속받은 행동(메서드)을 수정할 수 있다. 메서드 오버라이딩이라고 한다. 자식이 부모의 메서드를 반드시 오버라이딩 해야 하는 것은 아니다.

자식 클래스와 부모 클래스의 관계를 형성하는 조건

  • 자식과 부모는 “is a kind of”의 관계를 만족해야 한다.
    • ✅ Circle은 Shape의 종류 중 하나다.
    • ✅ Dog는 Animal의 종류 중 하나다.
    • ❌ Engine은 Car의 종류 중 하나가 아니다. (Engine은 Car의 부품이다)
    • ❌ Student는 Classroom의 종류 중 하나가 아니다. (Student는 Classroom을 사용한다)
  • SOLID의 리스코프 치환 원칙을 만족해야 한다.
    • 자식 클래스는 코드의 기능성을 해치지 않고도 부모 클래스로 대체될 수 있어야 한다.
  • 자식 클래스는 부모 클래스의 기능을 상속받을 뿐 아니라 사용해야 한다.
    • 자식 클래스는 부모 클래스도 대체될 수 있어야 하기 때문이다.

Categories:

Updated: