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 |
'Development > Java' 카테고리의 다른 글
Java - Member 내부 클래스의 구성 형식 (0) | 2018.11.20 |
---|---|
Java - 내부 클래스의 종류, Inner 클래스의 특징, Member 내부 클래스 (0) | 2018.11.20 |
객체에서의 다형성 (0) | 2018.11.19 |
Annotation(어노테이션), 어노테이션의 용도 (0) | 2018.11.16 |
SUMMARY - 자바프로그래밍 요약 2 (0) | 2018.11.16 |