다형성 - 추상 클래스와 인터페이스

Bloooooooooooooog..·2022년 12월 26일

추상클래스

설계만 진행된 클래스로 미완성 클래스이다. 몸체가 없는 메소드(=추상 메소드)를 포함한 클래스로 선언부에 abstract 키워드를 사용한다.

[접근제한자] abstract 반환형 메소드명(자료형 변수명);

특징

  1. 미완성 클래스로 abstract 키워드를 사용하며, 자체적으로 객체 생성 불가하며 반드시 상속 후 개체를 생성한다.

  2. abstract 메소드가 포함될 시 반드시 abstract 클래스이며, abstract 클래스는 꼭 abstract 메소드가 있어야 하는 건 아니다.

  3. 추상 클래스 내에 일반 변수와 메소드도 포함 가능하다.

  4. 객체 생성은 안되지만 참조형 변수 타입으로는 사용 가능하다.

장점

  1. 상속받은 자식에게 공통된 멤버 제공
  2. 필수적인 기능 구현을 강제화

인터페이스

상수형 필드와 추상 메소드만을 작성할 수 있는 추상 클래스의 변형체이다. 상속 시 인터페이스에 구현된 모든 추상 메소드를 구현해야 한다.

[접근 제한자] interface 인터페이스명{}

특징

  1. 모든 인터페이스의 메소드는 묵시적으로 public abstract
  2. 모든 인터페이스의 변수는 묵시적으로 public static final => 상수
  3. 객체 생성은 불가하나 참조형 변수로 사용 가능
구분추상클래스인터페이스
상속단일상속다중상속
구현extendsimplements
추상 메소드abstract메소드 0개 이상모든 메소드는 abstract
객체객체 생성 불가객체 생성 불가
용도참조타입참조 타입
profile
공부와 일상

0개의 댓글