Ms'Note

인터페이스의 이해 본문

IT/JAVA

인터페이스의 이해

Jelly_B 2020. 8. 24. 18:20

상황제시

  • A씨는 추상화의 장점을 이해한 후 다음 프로젝트에서는 추상화를 활용하기로 마음먹고
    아래와 같이 추상 클래스를 정의하였다.
/** 게임 캐릭터, 몬스터의 공통기능 정의 */
public abstract class Unit {
    public abstract void attack();  // 공격
    public abstract void shield();  // 방어
    public abstract void walk();    // 걷다
    public abstract void run();     // 뛰다
    public abstract void jump();    // 점프
    public abstract void pickup();  // 아이템 줍기
}

 

 

 

 

 

 

 

상황제시

  • B씨가 만들어야 하는것은 주인공 클래스와 몬스터 클래스이다.
  • 주인공 클래스는 Unit 클래스의 모든 기능을 사용해야 하지만,
    몬스터 클래스의 경우 '아이템 줍기' 기능은 필요하지 않다.

 

 

 

 

 

 

 

상황제시

  • C씨는 추상 클래스인 Unit의 기능을 용도별로 분할하여 나누어 놓고 주인공과 몬스터가 각각의 기능 중에서
    자신에게 필요한 것들만 상속받도록 하는 방법을 필요로 한다.

 

 

 

 

 

 

 

추상 클래스의 한계

  • 자바 클래스 간의 상속에서는 하나의 부모만 존재할 수 있기 때문에,
    앞의 상황에서 요구하는 다중 상속의 구현은 불가능하다.

 

 

 

 

 

 

 

Interface란?

  • 완벽한 추상화를 구현하기 위한 Java Class의 한 종류이다.
  • 다중 상속이 가능하기 때문에 용도별로 세분화하여 필요한 요소만 상속할 수 있다.

'IT > JAVA' 카테고리의 다른 글

인터페이스의 상속  (0) 2020.08.25
인터페이스 만들기  (0) 2020.08.25
추상 클래스의 상속 과정  (0) 2020.08.24
추상 클래스  (0) 2020.08.24
추상화의 이해  (0) 2020.08.24
Comments