[JAVA] 추상 클래스(abstract class)

unoung·2022년 5월 23일
1

JAVA

목록 보기
2/6

추상 클래스란?

미완성 설계도, 즉 인스턴스 생성 불가
미완성 메서드(추상 메서드)를 포함하고 있는 클래스를 말한다.

abstract class 클래스이름{
}
//추상 클래스는 키워드 'abstract'를 붙이면 된다

📺 예를 들어 같은크기의 TV라도 여러 종류의 모델이 있지만, 공통부분의 설계도는 동일할 것이다. 각각의 설계도를 따로 그리는 것보다 공통부분을 그린 미완성 설계도를 만들어놓고 이 미완성 설계도를 이용하여 각각의 설계도를 완성하는 것이 효율적인 방법이다.

즉 추상 클래스는 완전하지는 못하더라도 전체적인 틀을 갖추게 해준다 !

추상 메서드란?

메서드는 선언부와 구현부(몸통)으로 구성되어 있다.
선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 메서드를 말한다.
설계만 해 놓고 실제 수행될 내용은 작성하지 않아서 미완성 메서드이다.

abstract 리턴타입 메서드이름();
//추상 메서드도 키워드 'abstract'를 붙이면 된다

🖥 코드 작성해보기
abstract class Player{//추상클래스
	abstract void play(int pos);	//추상메서드
    abstract void stop();			//추상메서드
}
class GamePlayer extends Player{
	void play(int pos){				//추상메서드 구현
    /*내용생략*/
    }
    void stop(){					//추상메서드 구현
    /*내용생략*/
    }
}
abstract class AbstractPlayer extends Player{
	void play(int pos){				//추상메서드 구현
    /*내용생략*/			
    }
}

추상 클래스로부터 상속받은 자손클래스는 오버라이딩을 통해 추상 클래스의
추상 메서드를 모두 구현해주어야 한다. (class GamePlayer)
만일 상속받은 추상메서드 중 하나라도 구현하지 않는다면 자손클래스 역시 추상클래스로 지정해주어야 한다. (class AbstractPlayer)


✅ 핵심

추상 클래스는 공통적인 틀을 제공하며 조상 클래스로서 중요한 역할을 한다.
❗️추상 클래스는 추상 메서드를 포함하고 객체화 할 수 없다는 점을 제외하고는
일반 클래스와 다르지 않음❗️



출처: 자바의 정석(도서,유튜브)

profile
복습 블로그

0개의 댓글