package com.java1.day19;
/**
* 인터페이스의 이해 인터페이스를 이해하기 위해서는 다음 두가지 사항을 반드시 염두에 두고 있어야 한다. -클래스를 사용하는쪽(user)과
* 클래스를 제공하는쪽(provider)이 있다. -메서드를 사용(호출)하는 쪽(user)에서는 사용하려는 메서드(provider)의 선언부만
* 알면 된다.(내용은 몰라도 된다)
*/
public class InterfaceTest16 {
public static void main(String[] args) {
A2 a = new A2();
a.autoPlay(new B2());
a.autoPlay(new C2());
}
}
interface I2{
public abstract void play();
}
class A2 { //클래스A2를 작성 하는데 클래스B2가 관련되지 않았다는 사실에 주목하자.
//이전 예제와 다르게 autoPlay의 매개변수의 타입I2 하나 만으로 다 처리할수 있다.
void autoPlay(I2 i) {
i.play();
}
}
class B2 implements I2{
@Override
public void play() {
System.out.println("play in B2 class");
}
}
class C2 implements I2{
@Override
public void play() {
System.out.println("play in C2 class");
}
}
play in B2 class
play in C2 class