day19_InterfaceTest16

육희영·2021년 11월 1일
0
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

0개의 댓글

관련 채용 정보