본문 바로가기

JAVA/개별학습

[JAVA] 추상클래스

1. 추상  메서드와 추상 클래스

1-1. 추상메서드

  • 미완성형 함수(선언만 하고 정의되지 않은 상태 => 헤더 o, 바디(구현부) x)
  • 작성되어있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용
    ⇒ 상속받는 클래스에서 다형성을 실현하도록 하기 위함


1-2. 추상클래스

  • 추상메서드를 하나 이상 포함한 클래스 → UPCASTING 용으로 사용됨
    ⇒ 추상메서드가 있으면 반드시 선언, 추상메서드가 없어도 추상클래스로 선언 가능
  • 추상클래스는 동작이 정의되지 않은 미완성형이므로 객체 생성 불가
    ⇒ super() 메소드를 이용해 추상 클래스 생성자 호출 가능
    ⇒ 상속을 통해 자식클래스를 만들고 자식클래스에서 추상메소드를 오버라이딩해야 객체 생성 가능
       ⇒ 추상클래스를 상속받고 추상메서드를 오버라이딩하지 않으면 해당 클래스도 추상클래스가 됨
  • 선언시 Class 와 메서드 앞에 abstract 키워드 기재
  • 구현할 메서드를 명료하게 알려주는 인터페이스 역할 (& 구조적인 프로그램 설계)

2. 추상 클래스의 활용

2-1. 공통 멤버의 통합으로 중복 제거

  • 상속(extends) 기능을 이용해 자식 클래스들을 대표할 수 있는 부모 추상 클래스로 묶음
    → 코드의 중복 제거, 코드 재사용성, 유지보수 유리  (상위 클래스의 특징을 하위클래스에서 그대로 물려 받아 사용)

2-2. 규격에 맞는 설계 구현

  • 추상클래스를 상속받아서 미리 정의된 공통 기능 구현
  • 실체클래스에서 필요한 기능들을 클래스별로 확장
  • 미리 규격에 맞게 소스가 구현되어 있기 때문에 해당 규격에 대한 구현부만 수정하면 손 쉽게 기능 수정 가능

'JAVA > 개별학습' 카테고리의 다른 글

[JAVA] UpCasting & DownCasting  (0) 2024.02.21
[JAVA] 배열  (0) 2024.02.21
[JAVA] 타입변환  (0) 2024.02.21
[JAVA] 자료형  (0) 2024.02.21
[JAVA] 변수  (0) 2024.02.21