Programming Language/Java

인터페이스(interface)

DongHo 2023. 5. 17. 03:09

IT에서의 인터페이스

- 인터페이스는 컴퓨터와 다른 주변기기를 연결하는 표준의 의미입니다.

 

하지만,

JAVA에서의 인터페이스(interface)

- 해야 할 작업의 구체적 구현 없이 기능만 선언하는 클래스입니다.
- 하위 클래스가 수행해야 하는 메소드와 필요한 상수만을 미리 추상적으로 정의해 놓은 특별한 클래스입니다.
- 인터페이스는 다중 상속(multiple inheritance)을 지원(자바의 일반 클래스는 다중 상속을 지원하지 않음)합니다.

 

extends

- 사실 extends가 상속의 대표적인 형태입니다. 
- 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되있는 것을 직접 사용 가능합니다.

class Vehicle {
  protected int speed = 3;
  
  public int getSpeed(){
    return speed;
  }
  public void setSpeed(int speed){
    this.speed = speed;
  }
}

class Car extends Vehicle{
  public void printspd(){
    System.out.println(speed);
  }
}

public class ExtendsSample {
  public static main (String[] args){
    Car A = new Car();
    System.out.println(A.getSpeed());
    A.printspd();
  }
}

 

 

implements

- 인터페이스를 상속받는 하위 클래스를 정의할 때는 사용합니다.

public class Son implements Father, Mother{...}

 

 

정리

1. extends는 일반 클래스와 abstract 클래스 상속에 사용되고, implement는 interface 상속에 사용됩니다.
2. class가 class를 상속받을 땐 extends를 사용하고, interface가 interface를 상속 받을 땐 extends를 사용합니다.
3. class가 interface를 사용할 땐 implements를 써야합니다.
4. interface가 class를 사용할 땐 implements를 쓸수 없습니다.
5. extends는 클래스 한 개만 상속 받을 수 있습니다.
6. extends 자신 클래스는 부모 클래스의 기능을 사용합니다.
7. implements는 여러개 사용 가능합니다.
8. implements는 설계 목적으로 구현 가능합니다.
9. implements한 클래스는 implements의 내용을 다 사용해야 합니다.

'Programming Language > Java' 카테고리의 다른 글

Date 클래스  (0) 2023.05.17
Math 클래스  (0) 2023.05.17
추상 클래스(Abstract Class)  (0) 2023.05.17
오버라이딩(Overriding) / 오버로딩(Overloading)  (0) 2023.05.17
다향성(Polymorphism)  (0) 2023.05.17