📁 ex01
☕ Main.java
// 💡 와일드카드로 임포트 - import sec05.chap08.ex01.*;
YalcoGroup store1 = new YalcoChicken("울산");
YalcoGroup store2 = new YalcoCafe("창원", true);
YalcoGroup store3 = new YalcoGroup (1, "포항") {
// 원본 메소드에 public 추가
@Override
public void takeOrder() {
System.out.printf(
"유일한 얄코과메기 %s 과메기를 주문해주세요.%n",
super.intro()
);
}
public void dryFish () {
System.out.println("과메기 말리기");
}
};
String store3Intro = store3.intro();
store3.takeOrder();
//store3.dryFish // ⚠️ 불가
System.out.println("\\n- - - - -\\n");
for (YalcoGroup store : new YalcoGroup[] {store1, store2, store3}) {
store.takeOrder();
}
📁 ex02
☕ OnClickListener.java
public interface OnClickListener {
void onClick ();
}
☕ Button.java
public class Button {
String name;
public Button(String name) {
this.name = name;
}
// ⭐️ 인터페이스를 상속한 클래스 자료형
private OnClickListener onClickListener;
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public void func () {
onClickListener.onClick();
}
}