Leeyebin의 블로그

[JAVA]추상클래스 vs 인터페이스 본문

프로그래밍/깜빡하는 것들

[JAVA]추상클래스 vs 인터페이스

안되면될때까지 2017. 4. 13. 15:54

추상클래스 vs 인터페이스

  • 추상 클래스는 extends, 인터페이스는 implements 키워드 사용
  • 추상 클래스는 필드를 가질 수 있지만 인터페이스는 불가능
    • 인터페이스에서 Static 변수는 가질 수 있음
  • 추상 클래스도 클래스이기 때문에 다중 상속이 불가능
  • 다중 상속이 불가능한 제약을 인터페이스로 해결
    • 인터페이스는 메서드의 구현부분과 필드가 없기 때문에 다중상속 가능
  • 추상 클래스는 클래스를 상속 받아서 기능을 이용하거나 확장하는 목적
  • 인터페이스는 메서드 구현을 강제하여 하위 클래스에게 같은 동작을 행하도록 함.

어떤 것을 사용할 것인가.

  • 추상 메서드만으로 가능한 경우에는 인터페이스를, 공통된 구현 부분이나 필드가 필요한 경우에는 추상클래스를 사용한다.
  • 애초에 클래스를 설계할 때 필드를 가질 수 없다는게 명확하면 인터페이스를 하는 것을 권장한다.


'프로그래밍 > 깜빡하는 것들' 카테고리의 다른 글

Call by Value vs Call by Reference  (0) 2017.05.16
java vs javascript  (0) 2017.02.12
overloading vs overriding  (0) 2017.02.12
Comments