Universal 상위 클래스
개발자가 정의하는 모든 클래스는 Object클래스에서 기본적으로 상속받는다.
getClass(), notify(), notifyAll(), wait()등은 final이므로 오버라이딩 할수없다.
메소드
toString() 객체를 설명하는 String 객체를 Return, 이 메소드의 상속 버전에서 Return돠는
값은 클래스이름@객체의16진수표기 형태이다. 객체에서 이 메소드를
오버라이드하여 해당 클래스의 String 객체를 리턴할수 있다.
equals() 객체가 같은지 비교, 같으면 true(유형이 아니라 실제 객체가 같아야 한다.)
getClass() 현재 객체의 Class 유형을 Return
hashCode() 객체의 해쉬코드 값을 계산하여 int로 return
clone() 객체의 사본을 만든다. 복사가 가능하게 할려면 Cloneable 인터페이스를 구현해
야 한다.
finalize() 객체가 소멸될때 호출되는 메소드
개발자가 정의하는 모든 클래스는 Object클레스에서 기본적으로 상속받는다.
재정의한 toString() 메소드가 public이 되어야 하는 이유는 Object 클래스에서 public으로 선언되었으므로…
앞의 예제에서 EngBook, JavaBook 클래스 에서 toString() 을 주석처리후 실행하면 Book의 toString() 메소드가 실행되며, Book 클래스의 toString() 메소드까지 주석처리히게 되면 Object 클래스의 toString() 메소드가 기본적으로 호출되어 클래스이름@16진수 형태의 값이 출력되게 된다.