본문 바로가기
Study/Java

추상화 (인터페이스, 추상 클래스)

by _비니_ 2023. 8. 8.
추상화란?

복잡한 데이터를 단순화하는 프로세스이다.
추상화를 통해 객체를 더 쉽게 이해할 수 있다 !!

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