Java 최상위 클래스 Object클래스를 차근차근 배워볼 예정이다.

 

import java.lang;

요 키워드를 입력하고 사용해도 되지만 사실상 Object클래스는  자동으로 최상위클래스로 분류 되어있기 때문에

위의 임포트 문을 사용할 필요가 없다 .

이 캡쳐내용은 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

+ Recent posts