추상 클래스

이소연's avatar
Aug 05, 2024
추상 클래스
추상적인 개념을 나타내기 위한 용도
 

특징

-추상 클래스로는 객체를 생성X (구체적이지 않기 때문에 구현x)
-추상 클래스는 1개 이상의 추상메소드(몸체 없는 메소드_move( ); ) 가지고 있어야 함.
(그렇지만 추상 클래스가 추상메소드 가지고 또 보통의 메서드도 가질 수 있음)
-추상 클래스를 상속받는 자식클래스에서 반드시 메소드 재정의.
 

사용법 : abstract 붙여주면 됨.

Class 생성) abstract class ooo 이런 식으로
메서드) abstract void move( );
 

DIP-V

추상화에 의존.
 

추상화와 상속(부모 클래스의 빈 메소드를 자식클래스에서 재정의)의 차이

추상화 ) 추상 메서드는 자식 클래스에서 반드시 재정의 되야 함.
(재정의 꼭 해야해서 재정의를 하지 않으면 컴파일러가 오류 뜸) _ 강제
 
상속) 자식클래스에서 재정의 안되도 됨. 그냥 써도 됨. _선택권 있음
재정의 하지 않아도 컴파일러가 잡지 X
 

인터페이스

notion image
 

사용법 : interface를 씀

class 단어 대신 interface를 적음.
ex) public interface ooo{
반환형 추상메소드1( );
반화형 추상메소드2( );
…}
notion image
 

추상화와 인터페이스의 차이

클래스 :
  1. 일반클래스
  1. 추상클래스
    1. -추상클래스: 클래스 내 ‘추상메서드’ 1개 이상 / abstract로 정의
      ⇒목적) 추상 클래스를 상속받아서 기능을 이용/확장
-인터페이스 : 모든 메소드 추상인 경우, (default 일반 메소드 구현도 가능)
⇒ 함수의 껍데기만 있음. why?) 그 함수의 구현을 강제하기 위해.
구현을 강제함으로써 구현 객체의 같은 동작을 보장.
⇒ 다중 상속 가능
 
상속 : 슈퍼클래스의 기능을 이용/확장하기 위해 사용, 하나만 상속 가능
추상화는
인터페이스 : 해당 인터페이스를 구현한 객체들에 대해 동일한 동작을 약속하기 위해 존재.다중 상속 가능
인터페이스는 그 내용을 강제로 밑에서 구현하기 위한 것.
Share article

Coding's note