반응형
전에 클래스가 추상적이고 객체를 만들면 구체화 시킨다고 했었습니다. 그런데 갑자기 추상 클래스라니.. 추상적인 추상..
추상 클래스가 무엇인지 알아볼까요?
<추상클래스>
1. 클래스가 추상적이라는 의미가 아닌, 필드(메소드)중에 하나라도 추상적인 개념이 있을때를 의미
-> 필드 안에 구현이 안된 메소드가 선언되어 있는 클래스를 추상 클래스라고 한다. 이 때 구현되지 않은 메소드를 추상 메소드라고 부릅니다.
2. {} -바디 만 있어도 구현이 된것!! 구현이 안되어있는 추상메소드는 {}이 없는 메소드
=> 반드시 재정의를 통해 구현을 해야지만 메모리에 할당되기 때문에 강제성을 부여하기 위해서 추상 메소드로 선언합니다.
예를 들어! 가전제품 클래스를 상속받았는데 잘확인을 못하고 그냥 배포했습니다. 근데 제품이 나가고 보니 on off를 구현을 안해놓았던것입니다. 그럼 가전제품을 샀는데 꺼짐, 켜짐의 기능이 안되는것이죠!
이런것을 막기위해 상속이 되자마자 구현이 안되어 있는게 있다면 오류를 띄워주어, 놓치지 못하도록 강제성을 부여해주기 위한 기능입니다. (추상클래스를 상속 받으면, 구현하라는 오류가 납니다!)
<추상 클래스 선언>
/*abstract class 클래스명 {
* abstract 리턴타입 메소드명(자료형 매개변수,....);
* ** 일반 메소드도 선언가능
* }
*
*/
public abstract class Electronics {
abstract void on();
abstract void off();
}
// 추상메소드 또는 추상클래스는 abstract이라는 키워드를 사용
반응형
'프로그래밍 공부 > Java' 카테고리의 다른 글
[lesson] Java 프로그래밍 언어 - 예외 처리 (0) | 2021.07.29 |
---|---|
[lesson] Java 프로그래밍 언어 - 내부 클래스, 람다식 (0) | 2021.07.29 |
[lesson] Java 프로그래밍 언어 - 접근 권한 제어자 (접근자) (0) | 2021.07.28 |
[lesson] Java 프로그래밍 언어 - 캐스팅(Casting) (0) | 2021.07.28 |
[lesson] Java 프로그래밍 언어 - 상속 (0) | 2021.07.28 |