Abstract Data Type - 하나의 문법적 요소 - Encapsulation Runtime - 오버라이딩 Compiletime - 오버로딩 X a = new X(); X b = new Y(); 자손의 객체도 가리킬 수 있다. b.method() 하면 X가 아니라 Y에 있는 매소드가 실행됨. Y c = new X(); (ㄴㄴ) 하나이상의 abstract 매소드가 있으면 abstract클래스여야만 함 abstarct클래스여도 abstract 매소드가 없어도 됨 폴리몰피즘 룰이 동작하므로, 자손의 instance를 가리킬 수 있음. X a = new Y(); a.method(); method가 Y에 없으면 X에 있는거 실행 아예 없으면 컴파일에러 인터페이스는 모든 매소드가 abstract (absta..