Java 최상위 클래스 Object클래스를 차근차근 배워볼 예정이다.
import java.lang;
요 키워드를 입력하고 사용해도 되지만 사실상 Object클래스는 자동으로 최상위클래스로 분류 되어있기 때문에
위의 임포트 문을 사용할 필요가 없다 .

toString(); // 객체 정보를 문자열로 반환 (주로 클래스명@해시값 또는 오버라이딩된 설명)
getClass(); // 객체의 클래스 정보를 반환 (런타임 클래스 확인용)
hashCode(); // 객체의 해시코드 반환 (HashMap 등에서 key로 사용할 때 필요)
equals(); // 두 객체가 같은지 비교 (==는 주소비교, equals는 값 비교 용도로 오버라이딩 가능)
etc...
이러한 메서드들을 어떤 클래스에서든 바로 사용 할 수 있는것이 묵시적으로 모든 클래스는 "Object" 클래스를 상속받고있다고 한다.
public class Child extends Parent{
...
public class Parent extends Object{ //extends Object 가 묵시적을 생략 한것임
요렇게 상속된 것처럼 , extends 처리되어있다. 실제적으로 extends가 없더라도 묵시적으로 모두 생략되어있다고 함.
그런데 interface 와 다르게 상속의 경우 , 1개의 부모만 상속받을 수있는데... 위의 Child 클래스는 어떻게 Object를 상속할 수 있냐면..

이런식으로 결과적으로 상속되었기 때문이다.
public class ObjectMain {
public static void main(String[] args) {
Child child = new Child(); //자녀클래스인 Child를 생성자로 생성을 했다.
//toString()은 오브젝트의 메서드
String string = child.toString(); //sub클래스(자녀클래스) 생성자로 child.toString(); 사용했다.
System.out.println(string);
이런식으로 결과적으로 상속받은 Object 클래스의 생성자를 만들지 않고, sub클래스 생성자를 통해서 "toString"을 사용할수 있다.
이것이 다형성... 이라고한다는데... 다형성 개념은 조금 어렵다.
'Java_library > Object 클래스' 카테고리의 다른 글
| (Java_library) Object.equals() (0) | 2025.05.01 |
|---|---|
| (Java_library) Object.toString() (0) | 2025.05.01 |