오버라이딩이란? 상속관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것. 따라서 부모클래스에 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 서브 클래스로 재작성 하는 것이다.
다이나믹 메소드 디스패치 (Dynamic Method Dispatch)런타임이 호출해야하는 특정 메소드를 런타임에 결정하는 것?
다이나믹 메소드 디스패치는 오버라이딩 된 메소드에 대한 호출이 컴파일 타임이 아닌 런타임에 해석되는 프로세스이다.
추상 클래스자바에서 추상 클래스는 하나 이상의 추상 메소드를 포함하는 클래스를 가리킨다. 이러한 추상 클래스는 객체 지향 프로그래밍에서 중요한 특징인 다형성을 가지는 메소드의 집합을 정의할 수 있도록 해준다. 따라서 반드시 사용되어야 하는 메소드를 추상 클래스에 추상 메소드로 선언하면, 이 클래스를 상속받는 모든 클래스에서는 이 추상 메소드를 반드시 오버라이딩해야 한다.
추상 메소드란? 자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드를 의미한다.
final 키워드
클래스에 final이 붙었다면 상속을 허락하지 않겠다는 의미이다.
Object 클래스
모든 자바 클래스의 최상위 클래스, 조상이 되는 클래스이다. 따라서 자바의 모든 클래스는 Object클래스의 모든 메소드를 바로 사용할 수 있다.