728x90
반응형
abstract
abstract는 한국어로는 추상으로 번역되며, 상속을 강제하는 일종의 규제라고 생각하면 된다.
abstract 클래스나 메소드를 사용하기 위해서는 반드시 상속해서 사용하도록 강제하는 것이며,
abstract는 구체적인 로직을 가지고 있으면 안된다.
멤버 중에 하나라도 abstract라고 한다면 클래스도 자동으로 abstract로 바뀌며, abstract 클래스는 추상 메소드 뿐만 아니라 일반 메소드도 가질 수 있다.
그렇다면 abstract는 왜 쓰는 것일까??
부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 자식 클래스의 책임으로 위임하기 위해서이다. abstract는 작은 규모의 프로젝트에서는 거의 작성하는 경우는 없다고 한다.
아래 코드를 통헤서 abstract 살펴보자
이전에 자주 사용했던 계산기(Calculator) 예제에 abstract 키워드를 적용해 보았다.
먼저, Calculator 클래스를 abstract 클래스로 만들고, sum과 avg 메소드는 추상화 메소드, sum과 avg를 실행시키는 run 메소드를 만들었다.
CalculatorDeco로 시작하는 클래스 2개를 Calculaotr 클래스를 상속받도록 extends 시키고 sum과 avg 메소드의 결과값 앞에 +와 -를 포함하여 결과값을 출력하도록 코드를 작성하였다.


728x90
반응형
'TIL > Java' 카테고리의 다른 글
[Java] 다형성(Polymorphism) (0) | 2022.01.27 |
---|---|
[Java] 인터페이스(interface) (0) | 2022.01.25 |
[Java] 패키지 (0) | 2022.01.21 |
[Java] 메소드 오버로딩(Method Overloading) (0) | 2022.01.20 |
[Java] 오버라이딩(Overriding) (0) | 2022.01.19 |