Interface
- 다른 클래스를 작성할 때 기본 틀을 제공하면서 클래스 사이의 매개 역할까지도 담당하는 일종의 추상 클래스
- 추상 메소드와 상수만을 포함한다.
- 다중 상속이 가능하다.
- 필드는 public static final로, 메소드는 public abstract로 반드시 선언해야 한다.
interface Car {
public static final int speed = 50;
public abstract void drive();
}
class Jeep implements Car {
private String name;
private int speed;
Jeep(String name, int speed) {
this.name = name;
this.speed = speed;
}
public void drive() {
System.out.println(name + " drive");
}
}
class BMW implements Car {
private String name;
private int speed;
BMW(String name, int speed) {
this.name = name;
this.speed = speed;
}
public void drive() {
System.out.println(name + " drive");
}
}
public class InterfaceTest {
public static void main(String[] args) {
Jeep jeep = new Jeep("jeep", 50);
BMW bmw = new BMW("bmw", 100);
System.out.println("speed is " + Car.speed);
jeep.drive();
bmw.drive();
}
}
interface Car {
public static final int speed = 50;
public abstract void drive();
}
interface Transportation {
public static final int speed = 20;
public abstract void ride();
}
class Jeep implements Car, Transportation {
private String name;
private int speed;
Jeep(String name, int speed) {
this.name = name;
this.speed = speed;
}
public void drive() {
System.out.println(name + " drive");
}
public void ride() {
System.out.println("transportation car name is " + name);
}
}
class BMW implements Car {
private String name;
private int speed;
BMW(String name, int speed) {
this.name = name;
this.speed = speed;
}
public void drive() {
System.out.println(name + " drive");
}
public void ride() {
System.out.println("transportation car name is " + name);
}
}
public class InterfaceTest {
public static void main(String[] args) {
Jeep jeep = new Jeep("jeep", 50);
BMW bmw = new BMW("bmw", 100);
System.out.println("speed is " + Car.speed);
System.out.println("speed is " + Transportation.speed);
jeep.drive();
bmw.drive();
jeep.ride();
bmw.ride();
}
}
▷ 출처
728x90
'Java' 카테고리의 다른 글
[Spring] @Controller VS @RestController (0) | 2024.07.09 |
---|---|
재귀 알고리즘 (0) | 2024.07.04 |
추상 클래스 (Abstract Class) (0) | 2024.07.01 |
Serialization (직렬화) (0) | 2024.06.28 |
Enum (열거형) (0) | 2024.06.27 |