7. 인터페이스 interface /24 인터페이스 특징 1. 다중 상속 효과 (1) public interface InterfaceA{ void inteMethodA(); } public interface InterfaceB{ void inteMethodB(); } class ClassB implements InterfaceA, InterfaceB { public void inteMethodA() { System.out.println(" 안녕하세요 ");} inteMethodB() { System.out.println(" 안녕히가세요 ");} }
8. 인터페이스 interface /24 인터페이스 특징 1. 다중 상속 효과 (2) public interface InterfaceA{ void inteMethodA(); } abstract Class ClassA{ public abstract void claMethodA(); } class ClassB extends ClassA implements InterfaceA { puvlic void inteMethodA() { System.out.println(" 안녕하세요 ");} public void claMethodA() { System.out.println(" 안녕히가세요 ");} }
15. Inner 클래스 /24 Inner 클래스 특징 1. Outer 클래스 인스턴스 생성 후에 Inner 클래스 인스턴스 생성 가능 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass out = new OuterClass(); OuterClass.InnerClass inn = out.new InnerClass(); inn.InnerClass();
16. Inner 클래스 /24 Inner 클래스 특징 2. Inner 클래스 내에서는 Outer 클래스 멤버에 직접 접근 가능 class OuterClass{ int outNum=10; class InnerClass{ InnerClass(){ System.out.println("outer 클래스 : "+ outNum );} } } }
17. Inner 클래스 /24 Inner 클래스 특징 3. Inner 클래스 인스턴스는 자신이 속할 Outer 클래스 인스턴스를 기반으로 생성 class OuterClass{ class InnerClass{ InnerClass(){System.out.println(" 이너 클래스 ");} } } .... OuterClass out1 = new OuterClass(); OuterClass out2 = new OuterClass(); OuterClass.InnerClass inn1 = out1 .new InnerClass(); OuterClass.InnerClass inn2 = out1 .new InnerClass(); OuterClass.InnerClass inn3 = out2 .new InnerClass();
18.
19. 지역 (Local) 클래스 /24 Local 클래스 특징 인터페이스와 함께 정의 public interface Readable{ public void read(); } class OuterClass{ public Readable createLocalClassInst(){ class LocalClass implements Readble{ public void read() {System.out.println(" 지역 클래스다 !");} } return new LocalClass; } .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst(); loclInst. read();
20. 지역 (Local) 클래스 /24 Local 클래스 특징 final 로 정의된 매개변수와 지역변수에 접근 public interface Readable{ public void read(); } class OuterClass{ public Readable createLocalClassInst( final int istID ){ class LocalClass implements Readble{ public void read() {System.out.println( instID );} } return new LocalClass;} .... OuterClass out new OuterClass(); Readable localInst=out.createLocalClassInst( 1234 ); loclInst.read();
21.
22. 익명 (Anonymous) 클래스 /24 Anonymous 클래스 생성 return new Readable(){ }; Readable read = new Readable() public interface Readable { public void read(); } class OuterClass{ public Readable createLocalClassInst(final int istID){ return new Readable(){ public void read() {System.out.println(instID);} }; } }