[Java] Ch07_6. 추상클래스(abstract class)

토끼는 개발개발·2022년 2월 4일
0

Java

목록 보기
30/32
post-thumbnail
post-custom-banner

Chapter07. 객체지향 프로그래밍Ⅱ


✏️ 6. 추상클래스(abstract class)


6.1 추상클래스란?

추상클래스란 미완성 클래스를 뜻하며, 클래스가 미완성이라는 것은 미완성 메서드를 포함하고 있다는 의미이다. 추상 클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는데 있어서 바탕이 되는 조상클래스로서 중요한 의미를 갖는다.

abstract class 클래스 이름 {
	...
}

예를 들면, Tv를 여러 모델로 만든다고 했을 때 90%정도는 동일한 기능을 갖고 있을 것이다. 그러면 공통부분만을 그린 미완성 설계도를 만들어 놓고, 이 미완성 설계도를 이용해서 각각의 설계도를 완성하는것이 훨씬 효율적일 것이다.

클래스 선언부의 abstract를 보고 이 클래스에는 추상메서드가 있으니 상속을 통해 구현해주어야 한다는 것을 쉽게 알 수 있을 것이다.




6.2 추상메서드(abstract method)

/*주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. */
abstract 리턴타입 메서드이름();

메서드는 선언부와 구현부로 구성되어 있다. 선언부만 작성하고 구현부는 작성하지 않은 채로 남겨 둔 것이 추상메서드이다. 즉, 설계만 해놓고 실제 수행될 내용은 작성하지 않았기 때문에 미완성 메서드인 것이다.

abstract class Player { //추상클래스
	abstract void play(int pos); //추상메서드
    abstract void stop(); //추상메서드
}

class AudioPlayer extends Player {
	void play(int pos) { /* 내용생략 */ } //추상메서드 구현
    void stop() { /*내용생략 */ } //추상메서드 구현
    
}



6.3 추상클래스의 작성

추상화 : 클래스간의 공통점을 찾아내서 공통의 조상을 만드는 작업
구체화 : 상속을 통해 클래스를 구현, 확장하는 작

상속이 자손 클래스를 만드는데 조상 클래스를 사용하는 것이라면, 이와 반대로 추상화는 기존의 클래스의 공통부분을 뽑아내서 조상 클래스를 만드는 것이라고 할 수 있다.

추상화를 구체화와 반대되는 의미로 이해하면 보다 쉽게 이해할 수 있을 것이다. 상속 계층도를 따라 내려갈수록 클래스는 점점 기능이 추가되어 구체화의 정도가 심해지며, 상속 계층도를 따라 올라갈수록 클래스는 추상화의 정도가 심해진다고 할 수 있다.

즉, 상속 계층도를 따라 내려갈수록 세분화되며, 올라갈수록 공통요소만 남게 된다.




참고서적
자바의 정석(저자: 남궁성)


오늘의 한 줄

드디어 객체지향 프로그래밍 파트1, 파트2가 모두 끝났다.
다음 단원은 Java의 마지막 단원이 될 것이다.
원래 1월 안에 Java언어 포스팅을 끝내는 것이 목표였는데.. 채용공고들이 많이 나오고, 명절이 겹치면서 늦어졌다.
개념에 대한 이해도는 많이 높였지만, 실전에서 부족한점이 많으므로 포스팅이 마무리되면 Java코딩테스트와 Spring프로젝트를 시작할 예정이다.

다음은 Java 포스팅의 마지막 예외처리에 대해 다루겠다.

profile
하이 이것은 나의 깨지고 부서지는 기록들입니다
post-custom-banner

0개의 댓글