[Java] Interface

임혜정 ·2021년 10월 22일
0

Java

목록 보기
16/16

public class A implements B {}


인터페이스 특징


  • 인터페이스는 단독으로 객체 생성이 불가능하다.

  • 인터페이스는 무조건 추상메서드만 가능하고, 구현된 메서드를 가질 수 없다.

  • 추상 메서드와 final static(상수)를 둘 수 있다.

public interface Remocon { // 객체 생성 불가능 => Remocon r = new Remocon();

  public int MAXCH = 100;
  public final static int MINCH = 1;

  public void chUp();

  public void chDown();

  public void internet();

}




TV class (자식클래스)

public class TV implements Remocon {


  @Override
  public void chUp() {
    System.out.println("TV에 채널이 올라간다.");
  }

  @Override
  public void chDown() {

    System.out.println("TV에 채널이 내려간다.");

  }

  @Override
  public void internet() {

    System.out.println("인터넷이 된다.");

  }
}




Radio class (자식클래스)

public class Radio implements Remocon{
  @Override
  public void chUp() {
    System.out.println("Radio 채널이 올라간다");
  }

  @Override
  public void chDown() {
    System.out.println("Radio 채널이 내려간다");
  }

  @Override
  public void internet() {

    System.out.println("Radio 인터넷이 지원되지 않는다. ");

  }
}



  • 부모클래스가 interface 이면, 자식클래스는 무조건 동작시킬 수 있다.

  • 하위클래스의 동작방식을 몰라도 인터페이스로 100% 동작시킬 수 있다.

public class Test {

  public static void main(String[] args) {

    Remocon r = new TV();
    r.chUp();
    r.chDown();
    r.internet();

    r = new Radio();
    r.chUp();
    r.chDown();
    r.internet();

  }
}

/*
TV에 채널이 올라간다.
TV에 채널이 내려간다.
인터넷이 된다.
Radio 채널이 올라간다
Radio 채널이 내려간다
Radio 인터넷이 지원되지 않는다. 
*/



💡 추상클래스와 인터페이스를 어떻게 구분할까?

  • 서로 기능이 같은 클래스인 경우, 추상 class 로 묶어준다.
  • 서로 기능이 다른 클래스인 경우, interface로 묶어준다.
profile
포기하지 않고 끝까지 🐥

0개의 댓글

관련 채용 정보