package ex0726;
public class Ex06_interface {
public static void main(String[] args) {
Store st = new Store();
// Orange ob = new Orange();
Fruit ob = new Orange();
st.sell(ob);
st.sell(new Apple());
}
}
interface Fruit {
public int getPrice();
public String getName();
}
class Apple implements Fruit {
@Override
public int getPrice() {
return 1000;
}
@Override
public String getName() {
return "사과";
}
}
class Orange implements Fruit {
@Override
public int getPrice() {
return 800;
}
@Override
public String getName() {
return "오렌지";
}
}
class Store {
public void sell(Fruit ft) {
System.out.println(ft.getName() + " - > " + ft.getPrice());
}
}
인터페이스는 추상 클래스 종류이다.
클래스를 위한 템플릿이다.
과일로 친다면
과일의 이름과 가격을 인터페이스의 메소드로 선언해놓음.
Apple 클래스에서 Fruit를 구현했을 때 이름과 가격을 재정의 해야만 컴파일 오류가 발생하지않는다. (이름과 가격이 틀이기 때문에 그 틀에 맞춰서 Apple을 구현한다.) 나중에 Store클래스의 sell메소드에서 Fruit의 틀에 맞춰 생성된 과일들의 객체를 받아 과일의 이름과 가격을 출력해준다.
'쌍용강북교육센터 > 7월' 카테고리의 다른 글
0727_Ex101~Ex105, Ex109_exception : 예외처리 (0) | 2021.07.27 |
---|---|
0726_Ex07_interface : 인터페이스 (0) | 2021.07.26 |
0726_Ex05_interface : 인터페이스 (0) | 2021.07.26 |
0726_Ex04_interface : 인터페이스 (0) | 2021.07.26 |
0726_Ex03_interface 인터페이스 (0) | 2021.07.26 |