interface Able { }
interface B [ ㄱ ] Able { }
class C [ ㄴ ] Able { }
ㄱ - extends
ㄴ - implements
자식 인터페이스가 부모 인터페이스를 상속 받을 때는 extends
자식 클래스가 부모 인터페이스를 상속받는 경우는 implements
위의 익명클래스가 있을때
sub.method1(); 이 실행되면 익명클래스의 method1()메서드가 실행되서 sub1이 실행된다.
그런데 메서드가 아니라 만약 같은 이름의 데이터필드가 둘 다 있을 경우에 호출하면 어떻게 되는가? 만약 익명클래스 첫줄이
public int a = 20;이라고 했을 때에도 실행 결과는 10이 나온다. 왜냐하면 데이터필드의 호출은 선언 유형만 보기 때문에 변수 sub 의 선언 유형을 보면 CSuper이기 때문에 CSuper의 데이터필드가 호출되어 10이 출력되게 된다.