본문 바로가기
JAVA/기초

[JAVA 기초] 09 추상 클래스

by 푸_푸 2022. 8. 15.
728x90

* 추상 클래스
- 추상 클래스 : 구체적이지 않은 클래스. abstract 예약어 사용
추상 클래스는 항상 추상 메서드를 포함한다
추상 메서드는 수현 코드가 없다 = 함수의 몸체(body)가 없다

 

abstract int add(int x, int y);



*추상 메서드
추상 메서드가 속한 클래스는 추상 클래스로 선언해야 한다
추상 클래스를 상속받은 클래스는 추상 메서드를 모두 구현하거나 추상 클래스로 만들어야 한다
구현이 안된 추상 메서드를 포함하면 추상 클래스이다

*추상 클래스를 만드는 이유
- 추상 클래스는 인스턴스로 생성할 수 없음
- 추상 클래스는 상속을 하기 위해 만듦
구현된 메서드 : 하위 클래스에서 공통으로 사용할 구현 코드. 하위 클래스에서 재정의할 수도 있음
추상 메서드 : 하위 클래스가 어떤 클래스냐에 따라 구현 코드가 달라짐

*템플릿 메서드
- 템플릿 메서드 : 실행순서, 즉 시나리오를 정의한 메서드. final 예약어를 사용해 선언
final을 사용하면 상속받은 하위 클래스가 메서드를 재정의 할 수 없음
로직이 정해져 있는 프레임워크에서 많이 사용

*추상 클래스와 다형성
추상 클래스는 하위에 구현된 여러 클래스를 하나의 자료형으로 선언하거나 대입할 수 있다
추상 클래스에 선언된 메서드를 호출하면 가상 메서드에 의해 각 클래스에 구현된 기능이 호출된다
하나의 코드가 다양한 자료형을 대상으로 동작하는 다형성을 활용할 수 있다

*final 예약어
- final : 더이상 수정할 수 없다는 뜻
final 변수 : final 변수는 상수를 의미
final 클래스 : 상속할 수 없음
final 메서드 : 하위 클래스에서 재정의할 수 없음 

728x90

'JAVA > 기초' 카테고리의 다른 글

[JAVA 기초] 11 기본 클래스  (0) 2022.08.16
[JAVA 기초] 10 인터페이스  (0) 2022.08.16
[JAVA 기초] 08 상속과 다형성  (0) 2022.08.13
[JAVA 기초] 07 배열과 ArrayList  (0) 2022.08.12
[JAVA 기초] 06 클래스와 객체 2  (0) 2022.08.11

댓글