|
| 1 | +package chapter31; |
| 2 | + |
| 3 | +//강제하는 기능이다!!!(메서드 원형만 만들어주고 구현클래스로 구현해서 사용할 수 있도록 만들어 놓은 구조이다 |
| 4 | +//->구현한느 클래스가 꼭 같이 있어야 한다 (인터페이스에서 만들어 놓은 메서드 원형을 오버라이드 시켜야 한다) |
| 5 | +//클래스간의 상속 하느느 방법을 사용하지 않고 어느 클래스에서나 인터페이스 변수명으로 구현된 메서드를 호출해서 사용하는 방법이다 |
| 6 | +interface Etc{ |
| 7 | + //1.추상 메서드 형식 : 메서드 원형만 작성되어 있다 |
| 8 | + public abstract void anything(); |
| 9 | + //2.default 메서드 형식 |
| 10 | + default void anything1() { |
| 11 | + System.out.println("default는 인터페이스에서 구현되어진 메서드이다"); |
| 12 | + } |
| 13 | + //3.상수값을 지정해 놓고 공통적으로 사용할 수 있다 |
| 14 | + //변수는 선언하지 못하고 변수를 상수값 형태로 고정시켜서 사용할 수 있다 |
| 15 | + public static final int COUNT = 10; |
| 16 | + //4.static 메서드 형식 : 객체를 생성하지 않고 메서드 호출이 가능하다 |
| 17 | + static void anything2() { |
| 18 | + System.out.println("static은 객체가 새성되지 않아도 어디서나 호출이 가능하다"); |
| 19 | + } |
| 20 | +} |
| 21 | + |
| 22 | +//구현 클래스 |
| 23 | +class EtcOther implements Etc{ |
| 24 | + |
| 25 | + @Override |
| 26 | + public void anything() { |
| 27 | + System.out.println("추상 메서드를 강제롤 반드시 구현해야 한다"); |
| 28 | + } |
| 29 | + //아무것도 오버라이드 시키지 않음 |
| 30 | + |
| 31 | +} |
| 32 | + |
| 33 | +public class Interface5 { |
| 34 | + |
| 35 | + public static void main(String[] args) { |
| 36 | + EtcOther ec = new EtcOther(); |
| 37 | + //default void anything1() 메서드 호출해서 수행 |
| 38 | + ec.anything1(); |
| 39 | + System.out.println("-------------------------------------------------"); |
| 40 | + //2.public static final int COUNT = 10; |
| 41 | + //고정된 상수값으로 만들어 놓고 사용한다 |
| 42 | + System.out.println(ec.COUNT); |
| 43 | + System.out.println("-------------------------------------------------"); |
| 44 | + //3.static void anything2() 메서드 호출해서 수행 가능하다 |
| 45 | + //인터페이스내에서 만들었기 때문에 인터페이스명.메서드명 |
| 46 | + Etc.anything2(); |
| 47 | + System.out.println("Etc.COUNT ="+Etc.COUNT); |
| 48 | + //4.public abstract void anything() 추상메서드를 구현하고 수행시켜 본다 |
| 49 | + //구현 클래스를 생성해서 객체로 사용하는 방법 |
| 50 | + ec.anything(); |
| 51 | + //인터페이스로 구현클래스를 개개체 생성해서 오버라이드된 메서드를 호출해 오는 방법 |
| 52 | + //인터페이스형 = 구현(오버라이드된 메서드)된 객체를 생성 |
| 53 | + Etc e = new EtcOther(); |
| 54 | + e.anything(); |
| 55 | + |
| 56 | + } |
| 57 | + |
| 58 | +} |
0 commit comments