아이티클래스

abstract 제한자

2020. 3. 30. 09:05

abstract 제한자


abstract 제한자(modifier)는 내용이 정의되지 않은 메소드나 클래스 앞에 선언될 수 있으며 이를 추상메소드, 추상클래스라고 한다.

추상클래스는 추상 메소드의 내용을 구체화시키지 못했기 때문에 객체 생성을 할 수 없다. 추상메소드는 내용이 없는 프로토타입만을 가지고 있기 때문에 추상 메소드를 포함하는 클래스를 상속받는 하위클래스에서는 이 추상 메소드를 반드시 재정의해서 사용해야한다. 만약 상속받는 하위클래스에서 상위 추상 클래스의 추상 메소드를 모두 정의하지 않으면 이 클래스는 여전히 추상 클래스가 되어 객체를 생성하지 못하게 된다.

즉 추상(abstract) 메소드를 하나라도 가지는 클래스는 추상(abstract) 클래스가 된다. 또한 이 추상 클래스를 상속받는 클래스가 상위클래스의 모든 추상 메소드의 내용을 정의하지 못하면 계속 추상 클래스로 선언해야 한다.




추상 메소드는 내용을 가지고 있지 않고 단지 형태만을 가지고 있기 때문에 이 추상 메소드가 있는 클래스를 상속받는 하위클래스에서는 상위 클래스의 메소드를 재정의해서 사용해야만 한다. 상위클래스의 메소드의 형태를 그대로 사용해야한다는 것은 형태는 같고 그 내용만 다르게 동작하는 프로그램을 작성시 매우 유용하게 사용될 수 있다.

클래스에 추상 메소드가 하나라도 있다면 그 클래스는 반드시 추상클래스가 되어야만 한다.

abstract class 클래스 이름
{
    abstract 메소드 이름();
    메소드이름();
    //...
}


'Java' 카테고리의 다른 글

산술 연산자(+, -, *, /, %)  (0) 2020.03.30
static 제한자  (0) 2020.03.30
접근 제한자  (0) 2020.03.29
식별자(Identifier)  (0) 2020.03.29
키워드(Keyword)  (0) 2020.03.29

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band