[Java] 추상클래스(abstract) 정의, 특징, 사용 방법

Hee·2024년 4월 1일

Java 복습

목록 보기
24/46
post-thumbnail

추상클래스

구체적이지 않은 클래스를 의미한다. 독수리, 타조는 구체적인 새를 지칭한다. 새, 포유류 같은 것은 구체적이지 않다.

구체적이지 않은 것들을 구현한 클래스를 추상클래스라고 한다.



추상클래스 정의

  • 추상 클래스는 클래스 앞에 abstract 키워드를 이용해서 정의한다.
  • 추상 클래스는 미완성의 추상메소드를 포함할 수 있다.
    • 추상 메소드란, 내용이 없는 메소드이다. 구현이 되지 않은 메소드이다.
    • 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다.
  • 추상클래스는 인스턴스를 생성할 수 없다.
public abstract class Bird{
	public abstract void sing();
    
    public void fly(){
    	System.out.println("날다.");
    }
}


추상클래스 특징

  • 구체적인 것이 아닌 것들을 정의하는 클래스를 생성하기 위함이다.
  • 추상 클래스를 상속받는 클래스는 추상클래스가 갖고 있는 추상메소드를 반드시 구현해야 한다.
  • 추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 된다.
public class Duck extends Bird{
	@override
    public void sing(){
    	System.out.println("꽥꽥");
    }
}


추상클래스 사용

  • Bird는 추상 클래스이므로 객체를 생성할 수 없다.
public class DuckExam{
	public static void main(String[] args){
    	Duck duck = new Duck();
        duck.sing();		// 출력: 꽥꽥
        duck.fly();			// 출력: 날다.
    }
}

0개의 댓글