Abstract 클래스는 자바에서 상속과 인스턴스화를 방지하기 위한 클래스이다. 이 클래스는 abstract 키워드를 사용하여 정의할 수 있으며, 클래스 내에 추상 메소드를 포함할 수 있다. 추상 메소드는 메소드의 기본 틀만 정의하고, 구현 내용은 자식 클래스에서 구현한다.
abstract 클래스의 주요 특징은
- abstract 클래스는 인스턴스화 할 수 없다.
- abstract 클래스는 추상 메소드를 포함할 수 있다.
- abstract 클래스는 일반 메소드를 포함할 수 있다.
- abstract 클래스는 자식 클래스에서 상속받아 구현한 추상 메소드를 호출할 수 있다.
abstract 클래스는 자식 클래스를 구현하는데 있어서 중요한 역할을 한다. 자식 클래스는 abstract 클래스를 상속받고, abstract 클래스의 추상 메소드를 구현해야 한다. 이를 통해 다형성을 구현할 수 있으며, 코드의 재사용성을 높일 수 있다.
abstract 클래스를 사용하면 좋은 이점은 다음과 같다.
- 다수의 클래스가 공통된 기능을 갖는 경우
- 코드의 재사용성을 높이고 싶은 경우
- 클래스를 상속받아 구현해야 하는 경우
그러나 abstract 클래스를 사용하는 것이 항상 좋은 것은 아니다. abstract 클래스를 사용하는 것이 불필요한 경우도 있는데.
- 클래스의 인스턴스화가 필요한경우
- 클래스의 구현이 간단한 경우
주의점으로는 abstract 클래스 내에는 일반 메소드와 추상 메소드가 모두 포함될 수 있지만, 추상 메소드의 개수가 너무 많아지면 클래스의 복잡도가 증가할 수 있다. 또한, 추상 메소드를 오버라이딩할 때 메소드 이름과 그 메소드의 틀이 정확히 일치해야 한다는 점도 있다.
'Java' 카테고리의 다른 글
JAVA Inner class (0) | 2023.05.03 |
---|---|
JAVA Extends (0) | 2023.05.02 |
JAVA 다형성 (0) | 2023.05.02 |
JAVA This (0) | 2023.05.01 |
JAVA Scanner (0) | 2023.05.01 |
댓글