추상클래스란 추상메서드를 멤버로 가지고 있는 클래스를 추상클래스라고 한다.
추상메서드란 abstract키워드가 붙은 메서드를 의미한다.
ex) abstract void method();
추상메서드는 구현을 하지 않고 선언만 한 상태이며 추상메서드를 상속받은 클래스는 반드시 추상메서드를 오버라이딩(구현) 해야한다.그렇기 때문에 추상 메서드는 추상클래스를 상속받은 자식 클래스들이 해당 메서드를 반드시 오버라이딩하게 강제성을 부여하며
자식클래스마다 메서드의 이름은 동일하지만 다른 기능을 정의해야 할 때 추상 메서드를 사용한다.
추상 클래스
abstract public class AbstractParent {
private int a; // 이 클래스 내부에서만 사용가능
int b; // default 접근제어자 같은 패키지 내에서 접근가능
public AbstractParent() {
super();
}
public AbstractParent(int a, int b) {
super();
this.a = a;
this.b = b;
}
abstract void method(); // 추상메서드 선언
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
}
추상클래스의 상속
public class Test extends AbstractParent{ // 추상 메서드를 구현하도록 강제성 부여
public static void main(String[] args) {
AbstractParent parent = new Test(); // 다형성 > upcasting
parent.method();
}
@Override
void method() {
System.out.println("추상메서드 구현완료!");
}
}
'Java' 카테고리의 다른 글
초기화 블록 (0) | 2023.05.15 |
---|---|
인터페이스(interface) (0) | 2023.05.12 |
메모리구조(stack, heap, method area) (0) | 2023.05.04 |
가변배열, 가변인자 (0) | 2023.05.02 |
arraycopy 메서드를 이용한 배열의 복사 (0) | 2023.04.26 |