상세 컨텐츠

본문 제목

JAVA 9. 추상클래스(Abstract Class)

Backend/JAVA-자바

by 사랑짱 2021. 6. 16. 18:17

본문

 

◆ 추상(Abstract)이란?

- 실체들 간에 공통되는 특성을 추출하는 것(like 개요, 핵심)

 ( Ex. 새, 물고기, 호랑이 --> 동물(추상) )

 

 

◆ 추상클래스(Abstract Class)란?

 

 

- 객체(실체클래스)들의 공통되는 필드와 메소드를 정의한 클래스 -> 실체클래스의 부모 역할

- 추상 메소드가 하나 이상 포함되거나 abstract로 정의된 클래스

  (추상메소드 없이 abstract로 정의된 경우, 상속만을 위해 만든 추상클래스이다!!)

- 인스턴스 생성이 불가(But, 자식 객체가 생성될 때 super( ) 키워드를 통해 부모객체도 함께 생성)

 

※ 실체클래스(concrete class) : 객체를 직접 생성할 수 있는 클래스

 

 

◆ 추상클래스의 구성멤버

클래스의 구성멤버와 동일(필드, 생성자, 메소드)하나, 추상메소드가 포함된다.

 

※ 추상메소드란?

- 하위클래스가 반드시 실행내용을 채워야 하는 메소드

- 메소드 선언만 통일하고 실행내용(구현부)는 객체마다 다른 메소드

- 추상메소드는 접근제한자가 생략되어도 public 접근제한자를 갖는다!!

 

 

◆ 추상클래스의 사용목적

- 실체 클래스들의 공통된 필드와 메소드의 이름을 통일/규격화(강제성 有)

   (추상 메소드를 구현하지 않으면 자식클래스 또한 추상클래스가 되니까!)

- 실체 클래스를 작성할 때 소요되는 시간을 절약

- 상속받은 기능을 확장하여 구체화” -> 다형성

 

 

추상메소드와 오버라이딩

메소드 이름이 동일하지만, 실행 내용이 실체 클래스마다 다른 경우

추상메소드를 상속받아 오버라이딩을 한다. 이것이 추상클래스의 사용목적(다형성)이다!

 

※ 추상메소드 구현 방법

1. 상속받은 추상클래스의 추상메소드를 상속

2. 추상메소드의 구현부(메소드의 실행 내용)를 작성하여 Overrideing

 

 

관련글 더보기