JAVA
[java] 추상화 Abstraction
닉의네임
2025. 5. 14. 06:48
반응형
Java에서 추상화(Abstraction)는 복잡한 시스템을 단순화하여, 사용자나 개발자가 불필요한 세부사항에 신경 쓰지 않고 핵심 기능만을 사용할 수 있도록 하는 개념입니다. 추상화는 주로 **인터페이스(Interface)**와 **추상 클래스(Abstract Class)**를 통해 구현됩니다.
추상화의 주요 특징
- 세부 구현을 숨긴다: 객체의 동작을 정의하지만, 어떻게 동작하는지는 숨깁니다.
- 핵심 개념만 제공: 필요한 기능만을 외부에 제공하여, 시스템을 더 쉽게 사용할 수 있도록 합니다.
추상화 방법
인터페이스 (Interface):
- 인터페이스는 구현체가 없고, 메소드 선언만 존재합니다.
- implements 키워드를 사용하여 클래스를 인터페이스에 연결하고, 메소드들을 실제로 구현합니다.
interface Animal {
void makeSound(); // 추상 메소드
}
class Dog implements Animal {
public void makeSound() {
System.out.println("Woof!");
}
}
추상 클래스 (Abstract Class):
- 추상 클래스는 클래스에서 일부 메소드를 구현할 수 있지만, 완전히 구현되지 않은 추상 메소드를 포함할 수 있습니다.
- extends 키워드를 사용하여 클래스를 상속하고, 추상 메소드를 구현합니다.
abstract class Animal {
abstract void makeSound(); // 추상 메소드
void sleep() { // 구현된 메소드
System.out.println("Sleeping");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Woof!");
}
}
추상화의 장점
- 유지보수 용이: 복잡한 세부사항을 숨기고, 구현체를 변경하더라도 추상화된 부분만 변경하면 되므로 유지보수가 쉬워집니다.
- 모듈화: 코드의 각 부분을 독립적으로 개발할 수 있게 도와줍니다.
- 유연성: 여러 가지 구현체를 쉽게 추가할 수 있어 유연한 확장이 가능합니다.
추상화는 **객체 지향 프로그래밍(OOP)**의 핵심 원칙 중 하나로, 실제 구현과는 독립적으로 동작할 수 있게 해줍니다.
반응형