인터페이스 정의 및 구현

interface 내부에 있는 메소드에 있는 public은 지워도 잘 작동하는데 class SmartPhone 내부 메소드에 있는 public은 지우면 작동을 안하네요.. 이유가 궁금합니다 ㅠㅠ

CODE Link

  1. public class SmartPhoneTest {
  2. public static void main(String[] args) {
  3. SmartPhone sp = new SmartPhone("아이폰","010-2342-4232");
  4. sp.call("010-1234-5678");
  5. sp.ring();
  6. }
  7. }
  8. interface Phone {
  9. // targetNumber로 전화를 걸거야! 어떻게? 그건 아직 몰라!
  10. void call(String targetNumber);
  11. // 전화벨이 울릴거야! 어떻게? 그건 아직 몰라!
  12. void ring();
  13. }
  14. class SmartPhone implements Phone {
  15. String name;
  16. String phoneNumber;
  17. SmartPhone(String name, String phoneNumber){
  18. this.name = name;
  19. this.phoneNumber = phoneNumber;
  20. }
  21. public void call(String targetNumber){
  22. System.out.printf("%s로 전화를 겁니다!\n", targetNumber);
  23. }
  24. public void ring(){
  25. System.out.println("전화벨이 울립니다~");
  26. }
  27. }

INPUT

OUPUT

  1. 010-1234-5678 전화를 겁니다!
  2. 전화벨이 울립니다~

인터페이스의 경우 두 키워드

public과 abstract 키워드가 자동으로 추가됩니다

따라서
이를 구현하는 구현체 클래스는
반드시 public이어야 합니다

이해했습니다 감사합니다 ~

[Markdown Preview]