Java

추상 클래스 (Abstract Class)

yugyeong 2023. 1. 20. 13:17

추상 클래스

  • 클래스 정의시 abstract class로 정의한다.
  • 추상 메소드를 하나 이상 포함한다.
  • 추상 메소드는 선언만하고 구현하지 않은 메소드로 abstract 를 명시한다.
  • 추상 클래스는 완전하지 않기 대문에 객체를 생성할 수 없다.
  • 하위 클래스에서 상속 받은 모든 추상 메소드를 구현하면 객체를 생성할 수 있다.
  • 추상 메소드를 모두 구현하지 않을 경우, 하위 클래스도 모두 추상 클래스이다.
  • 추상 클래스는 하위 클래스의 공통점을 뽑아 상속해줄 목적으로 만들고, 하위 클래스에 기본 틀을 제공한다.

 

package Abstract;

// 부모 추상 클래스
public abstract class AbstractParent{
	String msg;
	public abstract void print();
}

// 자식 클래스, 추상 메소드 구현
public class AbstractChild extends AbstractParent{	
	@Override
	public void print() {
		System.out.println(msg);
	}
}

// 메인 클래스
public class AbstractMain {
	public static void main(String[] args) {
		AbstractParent p = new AbstractChild(); // 업캐스팅
		p.msg = "Hello";
		p.print(); // Hello
		 
		AbstractChild c = new AbstractChild();
		c.msg = "World";
		c.print(); // World
	}
}