인터페이스와 추상클래스의 차이를 설명해주세요.
인터페이스와 추상클래스는 객체 지향 프로그래밍의 다형성을 나타내기 위한 개념으로 단독으로 인스턴스가 불가능하며 상속받을 클래스가 정의해야할 추상 메소드를 정의하는 개념입니다.
차이점은 인터페이스는 interface 키워드를 사용하고 클래스가 아니기 때문에 다중 상속이 가능해 컴포넌트로써 읽는 것이 가능해진다는 장점이 있지만, 추상 메소드만 포함할 수 있으며, public 접근 제한자를 명시해야 합니다.
추상클래스는 abstract 키워드를 사용하고 접근 제한자에 제한이 없으며 비추상 메소드가 포함될 수 있지만, 다중 상속이 불가능합니다.
-- | 인터페이스 | 추상클래스 |
---|---|---|
키워드 | interface | abstract |
접근 제한자 | public | 모두 |
다중 상속 | 가능 | 불가능 |
속도 | 상대적 느리지만 무시 가능 | 상대적 빠름 |
필드 | 불가능 | 가능 |
메소드 | Only 추상 메소드 | 비추상 메소드 가능 |
정보에 감사드립니다.