본문 바로가기

JAVA/JAVA

자바 개념 - 추상클래스와 추상메소드 설명

반응형

추상클래스와 추상메소드 설명


부모클래스에서 자식클래스에게 물려줄 기능이 있는데 이 기능을 일반화 하지 못할때 abstract 이란 것을 사용하는 것

부모클래스안에 메소드의 body를 비우고 메소드명 앞에 abstract 을 붙여야 '추상메소드' 인걸 인지한다.


추상메소드가 있는 클래스는 반드시 abstract을 붙여야 한다.

추상(부모)클래스는 상속(자식)클래스에게 책임을 지게 한다. 추상클래스내의 모든 추상메소드를 재정의 하게끔 강제성 부여


또, 추상클래스는 구체화 되지 않는 메소드를 포함하므로 객체화 될 수 없다



<예제 순서>

1. 잘못된 예

2. 잘된 예


모든 2차원 도형이 가져야 할 공통적인 속성과 동작을 뽑아서 일반화 시키기


<코드1>

class Shape{

int x;

int y;

double area;

double dulle;


public void calcArea(){}

public void calcDulle(){}

}

Shape s = new Shape(); // 객체 생성 불가능(메소드의 body가 없기 때문에)


<코드2>

abstract class Shape{

int x;

int y;

double area;

double dulle;


abstract public void calcArea();

abstract public void calcDulle();

}

반응형