4. 추상클래스 ( abstract class )
1) 문법:
public abstract class 클래스명 {
}
2) 구성요소:
- 변수
- 생성자
- 메서드 ( concrete method )
: { } 를 가져서 기능이 정해짐.
ex)
public void a ( ) {
실행문;
}
- 추상메서드 ( abstract method )
: { } 를 지정안함. 기능이 미지정된 상태. 나중에 지정됨.
ex)
public abstract void a ( ); // abstract 키워드 필수.
=> 추상클래스는 추상 메서드를 가질수도 있다.
추상 메서드를 가지면 반드시 추상클래스로 만들어야 된다.
package exam15_추상클래스;
// 추상 클래스
abstract class AAA {
int n; // 변수
public AAA() {} // 생성자
public void method() {} // 메서드(일반 메서드, concrete method)
// 추상메서드
public abstract void a(); // {} 가 없어서 아직 어떤 작업을 할지 미지정된 메서드
}// end AAA
// 추상클래스는 자식 클래스를 통해서만 인스턴스화 될 수 있다. ( * )
// 이때 자식 클래스는 반드시 추상메서드를 overriding 해야되는 제약이 있다.
class BBB extends AAA {// 재정의하지 않으면 오류가발생
@Override
public void a() {
System.out.println("a 메서드");
}
}
public class AbstractTest {
public static void main(String[] args) {
// AAA x = new AAA(); // 추상클래스는 객체 생성x
//자식 클래스를 통해서 추상 클래스의 요소를 사용할 수 있다.
BBB y = new BBB();
System.out.println(y.n);
y.method();
y.a();
// 다형성을 적용한 BBB 객체생성이 가능하다.
AAA y2 = new BBB();
System.out.println(y2.n);
y2.method();
y2.a();
}
}
'Programming > JAVA(eclipse)' 카테고리의 다른 글
java 9일차 _05. 인터페이스 (0) | 2024.03.20 |
---|---|
java 9일차 _ 04. 추상클래스(2) (0) | 2024.03.20 |
java 9일차 _03. 접근지정자 (0) | 2024.03.20 |
java 9일차 _02. Object 의 toString( ) (0) | 2024.03.20 |
java 9일차 _01. 다형성 (0) | 2024.03.20 |