티스토리 뷰

LAB#3 : 싱글톤 하늘


LAB#4 : 인터페이스 상속과 구현

Q. A a = new D(); 이 무슨 뜻이지?

  • A a = new D(); #a의 관점으로 실제 객체 D의 메소드에 접근.
    즉, A에 있는 것만 D에서 쏙 골라서 보여준다.

LAB#5 : 리모컨 만들기……….

Q. 디폴트 메소드면 인터페이스 implements해도 똑같은 메소드 없어도 되는거야?

네 👍

디폴트 메서드(default method) 는 인터페이스에 “미리 구현된 메서드”라서, implements 하는 클래스가 굳이 다시 구현하지 않아도 됩니다.


Q. this.rc = tv; 는 무슨 뜻이야?

  • this.rc = tv;생성자에서 전달받은 TV 객체를, MyRemoteControl 내부의 rc 필드에 저장하는 코드예요.

Q. this.rc = rc; 는 무슨 뜻이야?

  • this.rc = rc; → “생성자로 전달받은 어떤 RemoteRole 구현체든 내 필드 rc에 저장한다”

Q. this.rc = tv;랑 rc = new TV(); 이거랑 같은거야?

코드 의미 특징
this.rc = tv; 외부에서 만들어진 TV 객체를 받아서 필드에 저장 ✅ 유연함 (이미 있는 객체를 재사용)
rc = new TV(); 생성자 안에서 새로운 TV 객체를 직접 생성 ❌ 유연성 없음 (항상 새 객체)

Q. 이렇게 인터페이스 관점+new 생성 쓰는 게 가능해?

  • TV 클래스가 RemoteRole 인터페이스를 implements 했기 때문에,
    TV 객체는 RemoteRole로 “취급될 수 있음”.
  • 참조 변수 타입을 인터페이스로 두면 → 그 인터페이스에 정의된 메서드만 호출 가능.
  • 실제 동작은 new TV()에 들어있는 코드가 실행됨.

Q. 흠..........좀 더 이해하기 쉽게 설명해줄래.. 두 방식의 차이를 잘 모르겠어.. 1. 인터페이스 이용 방식 VS 2. 리모컨 객체 이용 방식

  • 1번 : 리모컨 인터페이스 타입 참조 변수 mr은 하나인데, mr = new TV(); 함으로써 TV 전용처럼 사용하고(TV리모컨), mr = new Audio(); 함으로써 AUDIO 전용(Audio 리모컨)처럼 사용하는 거.
  • 2번 : MyRemoteControl이라는 만능 리모컨 클래스가 있고, 버튼(changeMode)로 tv, audio, car 바꾸며 조종

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함