여러 회사의 텔레비전 리모컨(인터페이스)

Dec 26, 2023
여러 회사의 텔레비전 리모컨(인터페이스)
💡
프로토콜(약속) - 수평
인터페이스(약속) - 수직
package ex07.example; // interface랑 extends이랑 코드가 속을 까고 보면 똑같은데 뭐가 다르냐? // interface는 먼저 다 정해 놓고(거시적) // extends는 아래서부터 만들어서 위로 올라간다.(미시적) interface Remocon { // public abstract void on();// 생략 가능. 보통 다 지워. void on();// 생략 가능. 보통 다 지워. void off(); }; class SamsungRemocon implements Remocon { @Override public void on() { System.out.println("삼성 리모컨 on"); } @Override public void off() { System.out.println("삼성 리모컨 off"); } }; class LgRemocon implements Remocon { @Override public void on() { System.out.println("엘지 리모컨 on"); } @Override public void off() { System.out.println("엘지 리모컨 off"); } }; /** * 작성자: 홍길동 * 날짜: 2023/12/26 * 구현체: SamsungRemocon, LgRemocon */ class commonRemocon { private Remocon r; // 인터페이스 혹은 추상클래스구나 하고 추측 가능 public commonRemocon(Remocon r) { this.r = r; } public void on() { r.on(); } public void off() { r.off(); } }; public class InterEx01 { public static void main(String[] args) { // Remocon samsumg = new SamsungRemocon(); // Remocon r2 = new Remocon(); // 안 됨 // samsumg.on(); commonRemocon cr = new commonRemocon(new SamsungRemocon()); cr.on(); } };
Share article

hyeonjeong-jang-0302