5일차 학습 내용

‍bng4535·2023년 2월 26일

자바 OOP

인터페이스

  • 다중 상속의 한계 극복

    다른 클래스들이 공통으로 가져야 할 메서드들의 집합을 정의하므로, 여러 개의 인터페이스를 구현함으로써 하나의 클래스에서 여러 개의 타입을 동시에 지원할 수 있다.

  • 표준화된 메서드 제공

    인터페이스는 특정한 기능을 수행하는 메서드들을 정의하므로, 이를 구현하는 클래스들은 동일한 인터페이스를 구현하여 동일한 기능을 수행한다. 이는 코드의 일관성을 유지하고, 코드의 재사용성을 높인다.

  • 유연성 제공

    인터페이스는 다른 클래스들과의 결합도를 낮춘다. 인터페이스를 사용하면 하나의 구현 클래스 대신, 인터페이스를 구현한 다양한 클래스들 중에서 적합한 것을 선택하여 사용할 수 있으므로 이는 코드의 유연성을 높인다.

추상 클래스

  • 중복 코드 제거

    하위 클래스에서 공통된 메서드를 묶어 추상 클래스를 상속받아 구현함으로써 중복 코드를 제거할 수 있습니다.

인터페이스와 추상 클래스 차이

  • 메서드 구현 유무

    추상 클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있지만, 인터페이스는 모든 메서드가 추상 메서드이다.
  • 다중 상속

    자바에서는 클래스에서 다중 상속을 지원하지 않지만, 인터페이스는 다중 상속을 지원한다. 즉, 하나의 클래스는 여러 개의 인터페이스를 구현할 수 있다.
  • 인스턴스 변수

    추상 클래스는 인스턴스 변수를 가질 수 있지만, 인터페이스는 상수와 static final 변수만 가질 수 있다.
  • 생성자

    추상 클래스는 생성자를 가질 수 있지만, 인터페이스는 생성자를 가질 수 없다.
  • 인터페이스를 사용하는 경우

    • 서로 다른 클래스에서 같은 기능을 구현해야 하는 경우
    • 다중 상속을 지원해야 하는 경우
    • 상속 관계가 없는 클래스들 간에 유사한 동작이 필요한 경우
    • 특정 기능에 대한 표준화를 제공하는 경우
  • 추상 클래스를 사용하는 경우

    • 추상 클래스 자체로도 공통적인 기능을 제공해야 하는 경우
    • 추상 클래스의 일반 메서드가 하위 클래스에서 재사용될 가능성이 높은 경우
    • 추상 클래스를 상속한 하위 클래스들이 동일한 인스턴스 변수를 필요로 하는 경우
profile
공부 기록

0개의 댓글