[Java]

자바 익명클래스 실습

ho-bolt 2021. 9. 10. 16:24

추상 클래스 Cafe

 

그 추상클래스를 매개로 받는 Starbucks 클래스 

 

스벅 객체 만들기 

여기서 익명클래스가 나온다. 스벅객체 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