Java - 추상 클래스 (Abstract Class) 개념과 사용 예시

반응형

추상 클래스

  • 클래스 선언시 abstract class로 정의
  • 추상 메소드를 하나 이상 포함
  • 추상 메소드는 선언만하고 구현하지 않은 메소드로 정의
  • 추상 메소드를 포함하는 상위 클래스는 객체 생성 불가
  • 하위 클래스에서 상속 받은 모든 추상 메소드를 구현하면 객체 생성 가능
  • 추상 메소드를 모두 구현하지 않을 경우, 하위 클래스도 모두 추상 클래스
  • 하위 클래스에 기본 틀을 제공

사용 예시

  • 추상 클래스의 추상 메소드를 상속 받은 하위 클래스에서 구현하여 메소드 사용 
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
	}
}
반응형