Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- jsp
- 문자열
- 메소드
- javascript
- 중첩for문
- 2차원 배열
- Else If
- 삼항 연산식
- rs.next()
- arraylist
- extends
- Break
- 배열
- If
- 이클립스
- 인터페이스
- 삼항 연산
- 이중 배열
- for문
- Integer.MAX_VALUE
- 오버로딩
- docker
- 상수
- Integer.MIN_VALUE
- 자바
- 다형성
- 상속
- scanner
- interface
- super()
Archives
- Today
- Total
개발로드
★KDT 2024-01-25☆추상 클래스 본문
추상 클래스란
직접 인스턴스화할 수 없는 클래스이다. 이는 다른 클래스의 청사진 역할을 하며 본문이 없는 메서드인 추상 메서드를 포함할 수 있다. 추상 클래스는 주로 여러 하위 클래스가 공유하는 공통 동작과 특성을 정의하는 데 사용되며, 코드 재사용을 허용하고 계층 구조를 승격시킨다.
| 추상클래스의 주의사항 | |
| 추상 키워드 | 추상 클래스는 Java에서 abstract 키워드를 사용하여 정의된다. 하나 이상의 추상 메서드가 있는 모든 클래스는 추상으로 선언되어야 한다. |
| 추상 메소드 | 추상 메소드는 본문 없이 선언되며 중괄호 대신 세미콜론으로 끝난다. 이러한 메서드는 추상 클래스를 확장하는 구체적인 하위 클래스로 구현되어야 다. |
| 인스턴스화 제한 | 추상 클래스는 'new' 키워드를 사용하여 직접 인스턴스화할 수 없다. 다른 클래스의 슈퍼(super())클래스로만 사용할 수 있다. |
| 상속 | 추상 클래스는 다른 클래스에 의해 하위 클래스로 분류(확장)될 수 있다. 서브클래스 자체가 추상 클래스가 아닌 이상 서브클래스는 슈퍼클래스에 선언된 모든 추상 메서드를 구현해야 한다. |
| 구체적인 메소드 | 추상 클래스는 추상 메소드와 구체적인(비추상) 메소드를 모두 가질 수 있다. 구체적인 메서드에는 본문({})이 있으며 하위 클래스에서 상속할 수 있는 기본 동작을 제공한다. 필요한 경우 하위 클래스는 구체적인 메서드를 재정의(Override)할 수 있다. |
| 부분 구현 | 추상 클래스에는 구현된(구체적) 메소드와 구현되지 않은(추상) 메소드가 혼합되어 포함될 수 있다. 이를 통해 공유 동작과 하위 클래스의 특정 구현 세부 사항을 결합할 수 있다. |


이 예에서 Animal은 추상 메서드 makeSound()와 구체적인 메서드 eat()가 있는 추상 클래스이다. 'Dog' 및 'Cat' 서브클래스는 'Animal'을 확장하고 'makeSound()' 메서드 구현을 제공한다. 이러한 구체적인 서브클래스는 인스턴스화될 수 있으며, 공통 추상 상위 클래스를 통해 다형성 동작을 허용한다.

'JAVA' 카테고리의 다른 글
| ★KDT 2024-01-29☆Collections Framework (0) | 2024.01.29 |
|---|---|
| ☆KDT 2024-01-26★인터페이스 (0) | 2024.01.26 |
| ☆KDT 2024-01-24★클래스 상속, 다형성,캐스팅 (0) | 2024.01.24 |
| ★KDT 2024-01-23☆상속, static, 싱글톤, 정적 초기화 (0) | 2024.01.23 |
| ☆KDT 2024-01-22★ (0) | 2024.01.22 |