본문 바로가기

Java

추상클래스

추상클래스란 추상메서드를 멤버로 가지고 있는 클래스를 추상클래스라고 한다. 

추상메서드란 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