JAVA / 상속 - 추상 클래스
1. 추상클래스의 개념
- '추상->구체화/실체화'의 컨셉으로 이해해보자.
- 예를 들어 컴퓨터를 조립한다고 가정하하자. 아직 용도의 컴퓨터(게이밍, 일반 문서 작업, 개발)를 만들 지 정하진 않았지만, 공통적으로 필요한 사항이 있을 것이다.
- 여기서 공통적으로 필요한 것을 모아놓은 것을 추상클래스(컴퓨터 / 일종의 설계도 역할)
추상클래스를 상속 받은 좀 더 구체적인 자식클래스(게이밍 컴퓨터, 문서 작업용 컴퓨터, 개발용 컴퓨터 등)
- 추상클래스를 상속받은 자식클래스는 추상클래스에 있는 추상 메소드를 반드시 오버라이딩 해서 구현해야 한다.
- 추상클래스는 객체를 생성할 수 없다.
2. 추상클래스를 사용하는 이유
- 위의 예제에서처럼 고려해야 할 사항이 많은 것을 작업 할 때, 미리 추상클래스를 생성해놓으면 컴퓨터를 만들 때 마다 일일이 필요한 것을 찾을 필요 없이, 이미 공통적으로 필요한 사항을 잘 정리해놓은 추상클래스에 맞춰 컴퓨터를 조립해나가면 된다. -> 편이성, 효율성
- 개발자 마다 각각 자신의 스타일대로 개발한다면 후에 유지 보수 시 코드를 알아보기 힘들 수 있다. 각자가 정의하는 변수명이나 개발 스타일이 상이하기 때문에.. 이 때 추상클래스를 서로가 공유하고 있다면 이해가 용이할 것
3. 주의
- 추상클래스에 final 이 있으면 컴파일 에러. final을 선언 하면 함수 재정의가 불가하기 때문이다.
** 참고 사이트
[JAVA] 자바 추상클래스란?
[JAVA] 자바 추상클래스란? 추상클래스 이 글 하나로 박살내자. 추상클래스의 문법적인 특징이나, 객체생성이 되고 안되고 이런 특징들이 중요한게 아닙니다. 도대체 추상클래스가 무엇이고 왜
limkydev.tistory.com
** 참고 문헌
자바의 정석 (남궁 성 지음)