추상클래스(abstract class)

오가람·2022년 12월 24일
0

  • 클래스와 인터페이스로 나뉨
  • 클래스는 일반 클래스와 추상클래스로 나뉨
  • 일반 클래스는 앞에 클래스만 붙어있다.

추상클래스는?

  1. 클래스앞에 abstract글자가 붙어있음
  2. 클래스 안에 추상 메서드가 한개라도 있으면 추상클래스로 정의 되어야한다.

추상메서드는?

  1. 구체적이지 않은 메서드
  2. 중괄호없이 괄호만 정의되고 뒤에 세미콜론이 붙음
  3. 객체를 만들수가 없음 (자식클래스를 상속을 해서 만들어야 함)

인터페이스는?

  1. 모든 메서드가 추상메서드로 구성 되어야 한다.
  2. 모든 필드가 스태틱 파이널로 선언 되어야 한다.
  3. 접근 제한자가 public이어야 한다.

인터페이스를 absstract를 써서 추상클래스로 만들어도 되지만, 인터페이스의 모든 조건을 갖췄다면 인터페이스를 쓰는게 낫다.

오버라이딩 vs 구현하기

  • 오버라이딩(overriding)
    부모클래스의 메서드(완성 또는 미완성)을 자식클래스에서 재정의(완성)
  • 구현하기(implements)
    부모클래스의 미완성메서드(추상메서드)를 자식클래스에서 재정의(완성)
  • 메서드의 완성과 미완성의 구분 기준 -> 중괄호의 존재여부

profile
개발자준비생

0개의 댓글