본문 바로가기
[JAVA]/[자바 기초]

[자바 기초] 추상 클래스

by 북방바다코끼리표범 2023. 8. 10.

복습

https://shins99.tistory.com/34

 

[자바 기초] 다형성

복습 https://shins99.tistory.com/32 [JAVA] 상속 복습 https://shins99.tistory.com/25 [자바 기초] 배열 복습 https://shins99.tistory.com/23 [자바 기초] static 복습 https://shins99.tistory.com/21 [자바 기초] C R U D 의 개념 복습 ht

shins99.tistory.com


💡 학습 목표 

1. 추상 클래스에 의미 
2. 메서드(함수)의 선언부란
3. 메서드(함수)의 구현부란
4. abstract 예약어를 알자 
5. 추상 클래스는 개발자 입장에서 new 키워드를 일반적으로 사용할 수 없다.

 

추상 클래스 (Abstract Class)

 

- 하나 이상의 추상 메서드를 포함하거나, abstract 키워드를 가진 클래스

- 추상적인 개념 = 화면에 나타낼 수 없는 것들

- 인스턴스화 불가능 (new 키워드 사용 불가)

→ 오류 : 부모 클래스 참조변수 = new 부모클래스();

업 캐스팅 가능 : 부모 클래스 참조변수 = new 자식클래스();

// 추상 클래스란 
// 1. abstract 키워드를 포함하면 추상 클래스가 된다.
// 2. 하나 이상의 추상 메서드를 포함하면 반드시 추상 클래스가 되어야 한다.
// 추상 클래스와 - 강제성 
public abstract class Animal {

	public void move() {
		System.out.println("동물이 움직입니다.");
	}
	// 추상 메서드란 !!
	public abstract void hunt();
}

 

추상 메서드

 

- 구현 코드 없이 메서드의 선언만 있는 메서드 (중괄호 없음)

- 추상 클래스에 추상 메서드가 없을 수는 있음, 하지만 추상 메서드가 있다면 반드시 추상 클래스가 되어야 한다(강제성)

- 추상 메서드는 자식 클래스가 상속 받아서, 메서드 오버라이드를 통해 구현

→ 추상 메서드 = 자식 클래스가 구현해야 하는 메서드

 

package ch07;
// 추상 메서드를 상속 받았다면 
// 해결 방법 
// 1. 자식 클래스도 충상 클래스로 만들어 주면 된다. 
// 2. 추상 메서드를 일반(구현) 메서드로 재정의 해주면 된다.
public class Human extends Animal {

	@Override
	public void hunt() {
		System.out.println("돌 도끼로 사냥을 합니다.");
	}
}