YUYANE

JAVA / 상속 - 추상 클래스 본문

Programming Languages/JAVA

JAVA / 상속 - 추상 클래스

YUYA 2020. 10. 2. 12:33

1. 추상클래스의 개념

- '추상->구체화/실체화'의 컨셉으로 이해해보자.

- 예를 들어 컴퓨터를 조립한다고 가정하하자. 아직 용도의 컴퓨터(게이밍, 일반 문서 작업, 개발)를 만들 지 정하진 않았지만, 공통적으로 필요한 사항이 있을 것이다.

- 여기서 공통적으로 필요한 것을 모아놓은 것을 추상클래스(컴퓨터 / 일종의 설계도 역할)

  추상클래스를 상속 받은 좀 더 구체적인 자식클래스(게이밍 컴퓨터, 문서 작업용 컴퓨터, 개발용 컴퓨터 등)

- 추상클래스를 상속받은 자식클래스는 추상클래스에 있는 추상 메소드를 반드시 오버라이딩 해서 구현해야 한다.

- 추상클래스는 객체를 생성할 수 없다.

 

2. 추상클래스를 사용하는 이유

- 위의 예제에서처럼 고려해야 할 사항이 많은 것을 작업 할 때, 미리 추상클래스를 생성해놓으면 컴퓨터를 만들 때 마다 일일이 필요한 것을 찾을 필요 없이, 이미 공통적으로 필요한 사항을 잘 정리해놓은 추상클래스에 맞춰 컴퓨터를 조립해나가면 된다. -> 편이성, 효율성

- 개발자 마다 각각 자신의 스타일대로 개발한다면 후에 유지 보수 시 코드를 알아보기 힘들 수 있다. 각자가 정의하는 변수명이나 개발 스타일이 상이하기 때문에.. 이 때 추상클래스를 서로가 공유하고 있다면 이해가 용이할 것

 

3. 주의

- 추상클래스에 final 이 있으면 컴파일 에러. final을 선언 하면 함수 재정의가 불가하기 때문이다.

 

 

 

** 참고 사이트

limkydev.tistory.com/188

 

[JAVA] 자바 추상클래스란?

[JAVA] 자바 추상클래스란? 추상클래스 이 글 하나로 박살내자. 추상클래스의 문법적인 특징이나, 객체생성이 되고 안되고 이런 특징들이 중요한게 아닙니다. 도대체 추상클래스가 무엇이고 왜

limkydev.tistory.com

** 참고 문헌

자바의 정석 (남궁 성 지음)

Comments