여기서 익명클래스가 나온다. 스벅객체 gangnam을 만들고 regist하면 추상클래스 c를 넘긴다. 따라서 익명클래스 타입인 new Cafe를 넘기게 되고 new Cafe(){ }가 전체 객체가 된다.
이 sell메소드에서 getMenu(), getPrice()를 사용할 수 있는 이유는 같은 클래스안에 있기 때문이다.
전체적인 흐름check!
interface Cafe는 메뉴,가격배열과 입력받은 menuName을 파는 메소드를 가지고 있고
스타벅스 클래스에서 그 인터페이스 Cafe를 객체로 받으면서 regist()를 수행한다.
그래서 c.getPrice(),c.getMenu() 함수를 수행할 수 있다.
그럼 실행하는 Road 클래스에서 스벅 객체를 만들어주고 regist()를 해주는데
regist()는 인터페이스 Cafe를 넘겨야 하고 이게 익명클래스 객체이다.
그래서 오버라이드 하며 재정의를 해줘야 한다. why? 인터페이스라 정의가 안되어 있기 때문에 !! .
그러면 실행했을 때
이렇게 나오게 된다.
728x90
'[Java]' 카테고리의 다른 글
자바로 리듬게임 따라만들기 [시작,종료버튼] (0) | 2021.09.11 |
---|---|
자바 개념(익명클래스) (0) | 2021.09.10 |
자바로 리듬게임 따라 만들기 3 (JButton)이용하기 (0) | 2021.09.09 |
자바로 리듬게임 만들기 2 (Thread를 통해 음악 재생) (0) | 2021.09.07 |
자바로 리듬게임 따라만들기 1 클래스 만들기 (0) | 2021.09.06 |
댓글