🚩추상클래스
🎃1. 추상클래스란
- 한 클래스를 추상적으로 정의하고 객체를 사용할 때 사용자가 추상클래스를 재정의(override) 하여 사용
- JAVA프로그램에서도 강제로 부모클래스에서 자식클래스에게 메소드를 강제로 재정의(override)하게 할 수 있다.
그리고 이러한 방법으로 만들어진 클래스를 ‘추상클래스’라고 합니다.
🎃2. 추상클래스의 문법
- abstract(추상클래스 및 추상 메소드를 선언하는 예약어)이용
public abstract class ClassName {
…
}
- 추상클래스에는 하나 이상의 추상 메소드가 포함. 추상메소드는 정의만 하고 구현 x
- 추상메소드에는 메소드의 선언부만 있고 실행부(구현부, Body)는 없다
abstract 리턴타입 methodName([매개변수])
- 추상 클래스에서는 메소드 선언만 하고 실제로 구현은 상속받는 클래스에서 한다.
기능는 자식 클래스에게 위임 - 추상클래스에서 정의된 추상적인 기능은 하위 클래스에서 상세 구현
- 클래스의 프레임만 구성. 직접 객체 생성 불가능
🎃3. 필요성
- 강제성을 느낄 때 사용
- 프로그래밍의 추상은 일상의 추상과 같다.
- 어떤 메소드를 추상적으로 정의만 해놓고, 실제 필요한 클래스에서 재정의하여 사용
- 부모클래스를 상속받은 자식클래스에서 강제로 어떤걸 재정의하여 사용할 경우 사용
🎃4. 추상클래스 상속과 일반적인 상속의 차이
부모 클래스의 메소드를 자식 클래스에서 변경할 일이 없다면 일반적인 상속
변경할 일이 있다면 추상클래스를 상속받아 재정의한다
🎃5. final(제한자)
⑴ 클래스 앞에 붙일 경우 : 상속 금지
public final class Test {
}
⑵ 멤버 메소드 앞에 붙일 경우 : 오버라이딩 금지
public final void print(){
}
⑶ 멤버변수 앞에 붙일 경우 : 상수화된다(변경금지).
public final int PORT_NUMBER = 80;