Skip to the content.

- 학습 목표 달성 확인 목록

- [] 클래스를 정의할 때 수퍼 클래스를 지정하지 않으면 어떻게 되는지 아는가?

모든 클래스의 슈퍼 클래스는 Object이다 그래서 따로 지정하지 않으면

public class A //extends Object//{
...
}

위의 코드처럼 암묵적으로 extends Object를 삽입하여 컴파일을 한다.

- [] Object 클래스의 toString() 리턴 값을 이해하는가?

String s1 = new String("Hello");

    String s2 = s1.toString();
    // Object.toString()은 "클래스명@해시값" 을 리턴한다.
    // String은 상속 받은 toString()을 오버라이딩 했다.
    // => this 주소를 그대로 리턴한다.
    System.out.println(s1 == s2); // true

    System.out.println(s2);

- [] Object 클래스의 equals(), hashCode() 메서드의 기능을 이해하는가?

equals():인스턴스가 같은지를 비교한다.

hashCode():인스턴스의 해시 코드를 리턴한다.

- [] Object 클래스의 메서드를 어떤 상황에서 오버라이딩 해야 하는지 아는가?

상속받은 기능을 자신의 역할에 맞게끔 재정의 할 때 오버라이딩을 한다.