21 Aug 2020

[Java8] 인터페이스와 추상클래스 차이점

인터페이스 vs 추상클래스


추상클래스

  • 추상클래스는 추상메소드를 포함할 수 도 있고 안할 수 도 있다.

  • 인스턴스화할 수 없다.

  • 추상클래스를 상속받는 클래스에서는 일반적으로 부모클래스에 있는 모든 추상메소드들을

    구현한다. 그렇지 않을 경우 해당 서브클래스 또한 abstract로 선언되야한다.


추상클래스 vs 인터페이스(Java 8 기준)

  • 추상클래스와 인터페이스는 인스턴스화 할 수 없다.


  • 구현부가 있는 메소드와 없는 메소드 모두 가질 수 있다는 점에서 유사


  • 인터페이스에서 모든 변수는 public static final, 메소드는 public abstract

    인 반면에 추상클래스에서는 static,final이 아닌 필드 지정가능, pubic,protected,private

    메소드를 가질 수 있다.


  • 인터페이스를 구현하는 클래스는 다른 여러 인터페이스를 다중 상속받아 구현가능

    추상 클래스는 다중상속불가


java 8 되서 가장 달라진점

인터페이스도 default키워드를 통해 메소드 구현부를 가질 수 있게 됬다.


Tags:
0 comments