# 인터페이스 정의 및 구현 interface 내부에 있는 메소드에 있는 public은 지워도 잘 작동하는데 class SmartPhone 내부 메소드에 있는 public은 지우면 작동을 안하네요.. 이유가 궁금합니다 ㅠㅠ #### CODE <a class='btn btn-default' href='/codes/79515'>Link</a> ``` public class SmartPhoneTest { public static void main(String[] args) { SmartPhone sp = new SmartPhone("아이폰","010-2342-4232"); sp.call("010-1234-5678"); sp.ring(); } } interface Phone { // targetNumber로 전화를 걸거야! 어떻게? 그건 아직 몰라! void call(String targetNumber); // 전화벨이 울릴거야! 어떻게? 그건 아직 몰라! void ring(); } class SmartPhone implements Phone { String name; String phoneNumber; SmartPhone(String name, String phoneNumber){ this.name = name; this.phoneNumber = phoneNumber; } public void call(String targetNumber){ System.out.printf("%s로 전화를 겁니다!\n", targetNumber); } public void ring(){ System.out.println("전화벨이 울립니다~"); } } ``` #### INPUT ``` ``` #### OUPUT ``` 010-1234-5678로 전화를 겁니다! 전화벨이 울립니다~ ```
## 인터페이스의 경우 두 키워드 public과 abstract 키워드가 자동으로 추가됩니다 따라서 이를 구현하는 구현체 클래스는 반드시 public이어야 합니다
이해했습니다 감사합니다 ~