반응형

추상클래스는 미완성 클래스라 불리며

이를 상속하여 사용목적에 맞게 미완성 부분을 완성하여 사용할 수 있습니다.

 

추상클래스란?

  • 완성되지 않은 클래스로 Java에서는 보통 미완성의 설계도로 불림.
  • 공통적으로 사용하는 기능을 추상클래스 내에 정의해 놓고, 이를 사용하는
    다른 클래스에서 추상클래스를 상속받아 사용할 때 사용됨.
    예) 이동수단이라는 추상클래스를 정의하고 메소드에 엔진 가동 기능을 추가
          차, 기차, 비행기는 엔진을 사용하므로 해당 추상클래스를 상속받아 사용한다.
  • 공통적인 기능과 변수를 미리 정의해 놓으므로 비슷한 기능을 가지는 클래스는
    매번 소스를 작성할 필요가 없는 장점을 가짐 -> 간결화, 재사용성
  • 선언은 되어 있으나 구현부가 없음
  • 선언은 Abstract를 사용함

추상메소드란?

  • 클래스와 마찬가지로 선언은 되어 있으나 구현 내용이 없는 메소드
  • 상속 시 해당 클래스에서 오버라이딩하여 본문 구현이 필요함
  • 추상메소드가 포함되어 있는 추상클래스 상속 시 포함된 메소드는 반드시 명시가 필요.

 

예제 소스

abstract class vihicle {
	
	int energe;
	abstract void start();
	abstract void print_power();
}

class airPlane extends vihicle{

	@Override
	void start() {
		System.out.println("엔진이 구동됩니다.");
		
	}

	@Override
	void print_power() {
		System.out.println("가동 가능한 에너지는 "+energe+"입니다.");
	}
	
}


public class runMove  {	
	public static void main(String[] args) throws Exception {

		airPlane ap = new airPlane();
		ap.energe = 200;
		
		ap.start();
		ap.print_power();
	}

}

 

소스 설명

위의 소스에서 vihicle 클래스는 추상클래스로서

본문에 포함된 추상메소드도 존재하고 있습니다.

 

이는 선언만 되어 있을 뿐 기능은 없으나

상속받아 사용 시 추상메소드는 오버라이드 형태로 재정의 하여 사용해야 합니다.

 

추상클래스, 메소드는 공통적으로 사용되는 것들은 간단하게 정의해 놓고

가져다가 쓰는 것에 의미를 두고 있습니다.

 

이렇게 사용한다면 비슷한 기능을 갖는 메소드의 명칭의 통일성 확보와

소스코드 작성의 간결함과 편리함의 장점을 가질 수 있습니다.

 

 

반응형

+ Recent posts