추상화란?
복잡한 데이터를 단순화하는 프로세스이다.
추상화를 통해 객체를 더 쉽게 이해할 수 있다 !!
Java에서 추상화는 인터페이스와 추상클래스로 구분된다
인터페이스
인터페이스는 객체의 동작 방식을 정의, 즉 객체가 가져야하는 기능들을 명시한다.
Java에서 인터페이스는 키워드를 통해 정의된다.
public interface MyInterface {
public void method1();
public void method2();
}
- 인터페이스 이름 : MyInterface
- MyInterface 인터페이스는 method1과 method2를 갖는다.
- 이 인터페이스를 구현하는 클래스는 반드시 MyInterface에서 정의된 메소드를 모두 구현해야 함!!★
- 인터페이스는 다중 상속이 가능하며, 상수와 추상 메소드만 가질 수 있다.
- 인터페이스는 다른 클래스와의 결합도를 낮춰주며 클래스 확장, 유연성을 눞이는 역할을 해준다.
추상 클래스
추상 클래스는 추상 메소드를 포함하는 클래스로 일반적인 method, field도 함꼐 가질 수 있다.
추상 클래스는 abstract 키워드를 통해 정의된다.
public abstract class MyAbstractClass {
public abstract void method1();
public void method2() {
// 코드 구현
}
}
- 추상 클래스 이름 : MyAbstractClass
- MyAbstractClass 클래스는 추상 메소드(method1)와 일반 메소드(method2)를 갖는다.
- 추상 클래스는 추상 메소드를 가지므로 인스턴스를 직접 생성할 수 없다.
- 대신 추상클래스를 상속 받아 추상 메소드를 구현한 하위 클래스를 생성해 사용한다.★
추상화의 장점
- 객체의 내부 동작 방식에 대한 세부사항을 숨기고 필요한 부분만 노출시키며 유저가 사용하기 쉽게 만들어준다.
- 또한 코드의 유지보수성이 향상된다.
- 객체의 구현이 변경되어도 인터페이스나 추상 클래스의 정의는 변경되지 않으므로, 이를 사용하는 다른 클래스들도 수정 없이 사용할 수 있다.
반응형
'Study > Java' 카테고리의 다른 글
캡슐화 (0) | 2023.08.07 |
---|---|
자바 객체 지향 프로그래밍 소개 (0) | 2023.08.07 |
Refactoring (0) | 2023.08.07 |
Eclipse 다운로드 & 단축키 (0) | 2023.08.07 |
Java 설치 & 환경 변수 설정 (0) | 2023.08.05 |