[Study] Virtual, Abstract, Interface

LimJaeJun·2024년 2월 19일

Study

목록 보기
11/16

virtual(가상)

  • 상속해서 추가적인 기능 추가 및 재정의 가능

abstract(추상)

  • 클래스 내부에서 abstract를 사용하려면 클래스 정의부에 abstract 키워드 선언
  • 여러개의 파생 클래스에서 공유할 기본 클래스의 공통적인 정의만 하고, 파생 클래스에서는 무조건 재정의
  • abstract 키워드는 인스턴스화 불가능

interface(인터페이스) :

  • abstract(추상)와 비슷하지만, 멤버변수를 사용할 수 없다.
    • abstract와 interface의 가장 큰 차이는 interface는 다중 상속이 가능하다.
  • 서로 다른 계층이나 타입이더라도 같은 기능을 추가하고 싶을 때 사용한다.
  • interface는 가장 높은 추상성을 제공한다.
    • 필드로 메서드, 프로퍼티 인덱서만 가질 수 있으며 abstract가 아닌 필드는 정의할 수 없다.
    • 접근 제한자를 사용할 수 없으며 모든 필드는 public이 적용된다.
  • interface는 상속의 개념보단 기능을 확장하는 개념
    • 서로 관계가 없는 클래스도 동일한 interface를 구현 가능
    • 서로 관계가 없는 클래스도 interface를 구현함으로써 관계가 형성되는데 이는 다형성으로 연결
profile
Dreams Come True

0개의 댓글