CS/개발지식 / / 2018. 6. 7. 17:26

[JAVA] 인터페이스와 추상클래스 공통점, 차이점

학습 목표

  1. 인터페이스(Interface)와 추상클래스(Abstract class)란?
  2. 공통점과 차이점을 설명할 수 있는가?


인터페이스와 추상클래스란?


① 인터페이스(Interface)


[특징]

▷ class Class implements Interface 의 모양이다.

▷ 미완성된 설계도라고 보시면 됩니다.

▷ 인터페이스끼리간의 상속이 가능합니다. 단 implements를 써야됩니다.

▷ 모든 멤버변수는 public static final이어야 한다. 단 이를 생략할 수 있다.

▷ 모든 멤버함수는 public abstract여야 한다. 단 이를 생략할 수 있다. 단, static 메서드와 default 메서드는 제외한다.(Java 8 이후)


[목적]

▷ 구현하는 모든 클래스에 대해 특정한 메서드가 반드시 존재하도록 강제합니다.


 추상클래스(Abstract class)


[특징]

abstract class Class 의 모양이다.

▷ 미완성된 클래스이다. (미완성된 메서드를 포함하고 있습니다. 반대로 완성된 메서드가 있을 수 있습니다.)


[목적]

▷ 기존의 클래스에서 공통된 부분을 추상화하여 상속하는 클래스에게 구현을 강제화한다.

▷ 메서드의 동작을 구현하는 자식클래스로 책임을 위임한다.

▷ 공유의 목적입니다.


인터페이스와 추상클래스 공통점


① 공통점


▷ 인터페이스와 추상클래스는 선언만 있고 구현 내용이 없는 클래스이다.

새로운 인스턴스(객체)를 생성할 수 없다.

자식클래스가 무언가 반드시 구현하도록 위임해야할 때 사용된다.


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


 종류

 추상클래스

 인터페이스

 관계

 is-a (상속)

 has-a (포함) - 다형성(Polymorphism)

 다중상속

 불가능

 가능



인터페이스와 추상클래스의 특징을 바탕으로 공통점과 차이점에 대하여 설명하면 될 것 같습니다.






'CS > 개발지식' 카테고리의 다른 글

[Mac] IntelliJ 단축키  (0) 2018.07.07
[JAVA] StringBuffer, StringBuilder, String  (0) 2018.06.07
[HTML] HTML5 과 HTML  (2) 2018.05.07
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유