[CS][Java] 추상클래스와 인터페이스

손경이·2024년 5월 3일
0

CS Study

목록 보기
23/25

추상클래스와 인터페이스


추상클래스 : 추상클래스는 하나 이상의 추상메서드를 포함하고 객체 간의 공통적 특성을 추출한 클래스라고 생각할 수 있습니다.
인터페이스 : 인터페이스 안에 선언된 메서드는 모두 추상메서드이고 함수의 구현을 강제해서 구현한 객체들이 같은 동작을 하는 것을 보장하는 목적이 있습니다.


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

  • new 연산자로 인스턴스를 생성할 수 없습니다.
    • 이는 추상메서드가 구현되지 않아서입니다.
    • 대신에 해당 클래스를 상속받거나 인터페이스를 구현한 클래스를 통해 인스턴스를 생성할 수 있습니다.
  • 추상클래스와 인터페이스를 사용하기 위해서는 하위 클래스에서 상속이나 구현이 필요합니다.

용어 정리
추상메서드

  • 빈 껍데기
  • 선언은 되어 있는데 코드가 구현되지 않은 것
// 추상메서드
public abstract String getName();
// 추상메서드가 아닌 경우
public abstract String getName() {
	retrun "hello";
}

> 추상클래스 (abstract)

  • 객체 간의 공통적 특성을 추출한 클래스라고 생각할 수 있습니다.
    • 예시로 동물 강아지, 고양이를 각각 클래스라고 생각했을 때 공통되는 짖는 소리를 추상클래스에서 따로 추출할 수 있습니다.
  • abstract 키워드로 정의합니다.
  • 하나 이상의 추상메서드를 포함합니다. (일반 메서드도 포함 가능합니다.)
  • 추상 클래스를 상속받은 클래스는 추상클래스 내의 모든 추상 메서드를 구현해야 합니다.
  • 상속을 받아서 기능을 확장하는 데 사용됩니다.
  • 다중상속이 불가능합니다.
    • 다른 클래스에서 다중으로 상속 받을 때 구현된 같은 이름의 메서드가 있을 경우 상속 받은 클래스에서 어떤 걸 사용해야 할 지 모호해집니다.

> 인터페이스 (interface)

  • 객체의 사용방법을 가이드라인 하는 것이라고 생각할 수 있습니다.
  • interface 키워드로 정의합니다.
  • 인터페이스 안에 선언된 메서드는 모두 추상메서드입니다.
  • 함수의 구현을 강제해서 구현한 객체들이 같은 동작을 하는 것을 보장하는 목적이 있습니다.
  • 다중상속이 가능합니다.
    • 추상클래스와 달리 인터페이스는 추상메서드인 빈껍데기만 있어서 구현할 때 모호함이 없습니다.

예제 참고하기
추상클래스 vs 인터페이스


참고

0개의 댓글