클래스 내부에 선언된 클래스
멤버 클래스 : 클래스의 멤버로써 선언 (인스턴스 멤버 클래스, 정적 멤버 클래스)
로컬 클래스 : 생성자 또는 메소드 내부에서 선언
멤버 클래스에서 바깥 클래스의 필드와 메소드에 접근할 때, 로컬 클래스에서 메소드의 매개변수나 로컬 변수를 사용할 때 제한이 따른다.
인스턴스 또는 정적으로 선언됨에 따라 제한이 다르다.
클래스의 멤버로 선언된 인터페이스
익명 객체 : 이름이 없는 객체
익명 자식 객체 : 자식 클래스가 재사용되지 않고, 오로지 특정 위치에서 사용할 경우 자식 클래스를 명시적으로 선언하지 않는 객체이다. 익명 자식 객체는 생성자를 선언할 수 없다.
익명 구현 객체 : 구현 클래스가 재사용되지 않고, 오로지 특정 위치에서 사용할 경우 구현 클래스를 명시적으로 선언하지 않는 객체이다. 익명 구현 객체는 생성자를 선언할 수 없다.
💡 상속 : is - a 인터페이스 : can - do, has - a 인터페이스가 더 다형성을 가능하게 하는 것 같다.