Java - 추상화 이해와 선언법 - 추상메소드(abstract method) 형식, 추상클래스(abstract class) 형식

CODEDRAGON Development/Java

반응형


 

 

Java - 추상화 이해와 선언법

·         추상메소드(abstract method) 형식

·         추상클래스(abstract class) 형식

 

 

추상메소드(abstract method) 형식

·         메서드 정의시 중괄호({ }) 생략하여 메서드가 하는 (body) 없이 세미콜론(;)으로 문장이 납니다. ( 메서드 정의)

·         선언부만 있고 구현부가 없는 메소드를 의미합니다. (no body, only function prototype)

·         abstract라는 예약어를 통해 현재 메서드가 추상 메서드임을 표시하고 있습니다.

·         자식 클래스에서 반드시 오버라이딩해야만 사용할 있는 메소드를 의미합니다.

·         중복되는 부분이나 공통적인 부분은 미리 만들어진 것을 사용하고(추상메소드), 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의(오버라이딩)하여 사용함으로써 생산성이 향상, 배포, 표준화 구현할 있게 됩니다.

 

문법 구성

사용

[접근제한] abstract [반환자료형] [메소드명]( );

public abstract  void absPlay( );

 

 

 

 

추상클래스(abstract class) 형식

·         추상 메서드를 하나라도 가지게 되는 클래스 바로 추상 클래스입니다.

·         하나이상의 abstract 메소드를 포함하는 클래스는 abstract 선언되어야하며, 인스턴스생성은 불가능합니다. , 상속용으로 설계됩니다.

·         자식 클래스를 위한 공통 클래스(base class)로 사용되며 top-down 형식의 설계에 사용되어 집니다.

·         인스턴스생성은 불가능 하나, 참조변수 선언은 가능하고, 오버라이딩의 원리 그대로 적용하여 추상메소드도 구현가능합니다.

·         반드시 사용되어야 하는 메소드 추상 클래스에 추상 메소드로 선언해 놓으면, 클래스를 상속받는 모든 클래스에서는 추상 메소드를 반드시 재정의해야 합니다.

추상 클래스는 추상 메소드를 포함하고 있다는 점을 제외하면, 일반 클래스와 모든 점이 같습니다. , 생성자와 필드, 일반 메소드도 포함할 있습니다.

 

문법 구성

사용

[접근제한] abstract class [클래스명]{

[접근제한] abstract [반환자료형] [메소드명]( );

 

}

public abstract class AbsEx{

public abstract  void absPlay( );

 

}

  

추상 클래스는 인턴스를 생성할 수 없습니다.

ERROR: Cannot instantiate the type xxx