본문 바로가기

개발/자바

[Java] Abstract vs Interface

추상 클래스

  • 필드와 메서드 제어자에 제한이 없음.

정의

  • 추상메서드를 1개 이상 포함하고 있는 클래스는 반드시 추상 클래스로 정의

추상 메서드

  • 메서드 기능이 정의 되어 있지 않은 미완성 메서드 (중괄호가 없는 메서드)가 1개 이상 있다는 뜻.
  • 앞에 abstract를 붙임.

예시

abstract class A {
    abstract void abc(); // 중괄호 없이 명령어의 끝을 알리는 세미콜론(;)으로 끝나야 함.
    }

특징

  • 추상 클래스는 내부의 미완성 메서드 때문에 객체를 직접 생성할 수 없다.

  • 이유: 힙 메모리에 생성되는 객체는 내부 요소가 미완성된 상태로 들어갈 수 없기 때문이다.

예시) A a = new A() 할 수 없음.

추상 클래스를 상속하는 자식 클래스는 부모에게 상속받은 미완성 메서드(추상 메서드)를 반드시 완성(오버라이딩) 해야 함.

추상 클래스 객체 생성 방법

  1. 추상 클래스를 상속한 일반 클래스 생성
  2. 익명 이너 클래스 사용

인터페이스

출처:

'개발 > 자바' 카테고리의 다른 글

StringUtils  (0) 2022.05.23
객체지향 프로그래밍  (0) 2022.04.25
클래스, 객체, 인스턴스  (0) 2022.04.25