본문 바로가기
BackEnd/Java

[Java] 추상 Abstract

by summer_light 2021. 7. 13.

추상 Abstract

클래스 만드는 목적은 인스턴스 생성하기 위해서인데,
추상클래스는 미완성 된 클래스이기 때문에 인스턴스를 생성할 수 없다.
그럼 추상클래스는 왜 존재하는 것일까?
   
자바에서는 추상화라는 개념을 구현할 수 있다.
일단 추상이라는 의미부터 살펴보자면,

추상이라는 것은 현실화 되어질 필요가 없는 클래스를 말한다.


따라서 인스턴스화 할 필요는 없지만,

상속개념에서 중요한 위치를가지는 클래스를

보통 추상클래스로 선언하여 사용한다.


 
추상 클래스 선언 규칙

1. 클래스의 정의된 메소드 중 추상 메소드가 하나라도 있다면 해당 클래스는 무조건 추상 클래스가 된다.

2. 만약 추상 메소드가 하나도 없을 때 클래스를 추상화 하고 싶다면 abstract 키워드를 붙여서 추상화 시킬 수 있다.

3. 추상 클래스는 자신의 인스턴스를 발생시킬 수 없지만 생성자, 메소드, 필드는 모두 선언/정의 할 수 있다.

4. super type 전개 가능하므로 다형성도 적용가능하다.

- 인스턴스를 발생시킬 수 없는데 생성자를 선언할 필요가 있을까?

 

 

추상 클래스 선언 형식

  • abstact라는 키워드를 리턴 타입 앞에 선언
  • 추상 메소드는 메소드 바디{}가 없는 형태이므로 파라미터 괄호()뒤에 {}없이 세미콜론;을 붙여준다.

EX

public abstract void print();



 

 

 

 

 

'BackEnd > Java' 카테고리의 다른 글

[Java] 열거 타입 Enum  (0) 2021.07.13
[Java] 다형성 Polymorphism  (0) 2021.07.13
[Java] 상속과 인터페이스  (0) 2021.07.13
[Java] 자바 API 읽기  (0) 2021.07.09
[Java] String Builder / String Buffer  (0) 2021.07.09

댓글