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 |