본문 바로가기
쿤즈 Dev/Java

[Java] 추상 키워드 abstract

by Koonz:) 2023. 9. 15.
728x90

자바(Java)에서는 'abstract'라는 키워드가 있다. 이 키워드는 클래스, 메서드 또는 인터페이스를 선언할 때 사용하는 키워드 중 하나이다.

이번 포스팅에서는 'abstract' 키워드에 대해서 알아보자.


추상 클래스 Abstract Class

추상 클래스는 다른 클래스들이 상속받아 확장할 수 있는 가장 베이스 클래스다. 추상 클래스는 일반 클래스와는 다르게 'abstract' 키워드를 사용하여 선언된다. 추상 클래스는 추상 메서드를 포함할 수 있으며, 추상 메서드는 메서드의 선언만 있고 구현은 없는 메서드다.

 

추상 클래스를 사용하는 주된 목적은 다른 클래스가 해당 클래스를 상속받아 필요한 메서드를 구현하도록 하기 위함이다.

abstract class Shape {
    abstract void draw(); // 추상 메서드
}

'Shape' 클래스를 추상 클래스로 만들고 내부에 draw()라는 추상 메서드를 만들어 두었다. 따라서 상속받은 클래스는 반드시 이 메서드를 구현해야 한다.


추상 메서드 Abstract Method

추상 메서드는 메서드의 선언만 있고 본문(구현) 이 없는 메서드를 말한다. 추상 메서드는 추상 클래스나 인터페이스 내에서 선언된다. 하위 클래스가 추상 클래스를 상속받거나 인터페이스를 구현할 때, 해당 추상 메서드를 반드시 구현해야 한다.

abstract void draw(); // 추상 메서드

추상 클래스와 추상 메서드는 다형성을 구현하고 코드 재사용을 촉진하는 데 도움을 준다. 추상 클래스는 객체를 직접 생성할 수 없으며, 그 자체로는 추상 메서드를 가질 수 없다. 하위 클래스에서 추상 메서드를 구현하고 인스턴스를 생성해서 사용해야 한다.

class Square extends Shape {
    void draw() {
        // Square을 그리는 코드 구현
    }
}

추상 클래스와 추상 메서드를 사용하여 코드의 일관성을 유지하고 확장 가능한 소프트웨어 아키텍처를 디자인 할 수 있다.


추상(abstract) 키워드를 사용하는 이유

'abstract' 키워드를 사용하는 이유는 다음과 같다.


추상화

추상 클래스와 메서드는 복잡한 시스템을 단순화하고 중요한 세부 정보를 감추는데 도움을 준다. 추상화를 통해 핵심 기능에만 집중할 수 있으며, 세부 구현은 하위 클래스에 위임할 수 있다.

 

다형성

추상 클래스와 메서드는 다형성의 핵심 요소이다. 다형성을 통해 같은 인터페이스 또는 추상 클래스를 구현하는 다양한 하위 클래스를 사용하여 유연하고 확장 가능한 코드를 작성할 수 있다. 이렇게 하면 다양한 객체를 효과적으로 처리하고 동적으로 선택할 수 있다.

 

강제성

추상 클래스는 하위 클래스에 특정 메서드를 구현하도록 강제한다. 이것은 개발자가 필요한 동작을 정의하는 데 도움을 주며, 코드 일관성과 신뢰성을 높인다.

 

코드 재사용

추상 클래스와 메서드를 사용하면 비슷한 동작을 가진 여러 클래스에서 공토 로직을 추출하여 재사용할 수 있다. 추상 클래스를 상속하고 추상 메서드를 구현함으로써 중복 코드를 줄일 수 있다.

 

설계 패턴

추상 클래스와 추상 메서드는 다양한 설계 패턴에서 사용된다. 예를 들어서, 탬플릿 메서드 패턴에서는 추상 클래스를 사용하여 일부 메서드를 추상 메서드로 정의하고 나머지 메서드를 구체적으로 구현한다.

 

확장 가능성

추상 클래스와 메서드를 사용하면 소프트웨어를 미래의 변경에 대비하여 확장 가능하게 만들 수 있다. 새로운 기능이나 동작을 추가할 때 기존 추상 클래스를 수정하지 않고 하위 클래스를 만들어 확장할 수 있다.


이번 포스팅에서는 'abstract' 키워드에 대해서 알아보았다. 이를 사용하는 추된 이유는 추상화, 다형성, 강제성, 코드 재사용, 설계 패턴 적용 및 확장 가능성을 통해 더 효율적이고 유연한 소프트웨어를 개발하기 위함이다.

댓글