JAVA

[Java] Object 클래스

songsua 2024. 10. 16. 01:54

java.lang 패키지의 대표적인 클래스들

  • Object` : 모든 자바 객체의 부모 클래스
  • String` : 문자열
  • integer` , `Long` , `Double` : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것
  • Class` : 클래스 메타 정보
  • System` : 시스템과 관련된 기본 기능들을 제공

자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 이다.

 

 

package lang.object;

//부모가 없으면 묵시적, 자동으로 Object 클래스를 상속받는다.
// extends parents 을 앞에 넣는 것과 동일하다.
public class Parent {

    public void parentMethod() {
        System.out.println("Parent.parentMethod");
    }
}

 

child class

package lang.object;

//child 는 명시적, 수동적으로 parent에게 상속한다.  
public class Child extends Parent {

    public void childMethod() {
        System.out.println("Child.childMethod");
    }
}

 

그 위의 object 쪽의 코드를 실행 시킬 경우에는?

package lang.object;

public class ObjectMain {

    public static void main(String[] args) {
        Child child = new Child();
        child.childMethod();
        child.parentMethod();

        // toString()은 Object 클래스의 메서드
        String string = child.toString();
        //toString : 객체에 대한 정보를 제공해주는 것 
        System.out.println(string);
    }
}

 

결과 값

Child.childMethod
Parent.parentMethod
lang.object.Child@5f184fc6

종료 코드 0(으)로 완료된 프로세스


//lang.object.child 는 객체에 대한 정보를 출력한 값이다.

 

Parent 는 Object 를 묵시적으로 상속 받았기 때문에 메모리에도 함께 생성된다. 

 

자바에서  Object 클래스가 최상위 부모 클래스인 이유

  • 공통 기능 제공
  • 다형성의 기본 구형

Object 가 제공하는 기능

  • 객체의 정보를 제공하는 toString()
  • 객체의 같음을 비교하는 equals()
  • 객체의 클래스 정보를 제공하는 getClass()
  • 기타 여러가지 기능

 

Object 다형성

 

Dog 와 Car 은 서로 아무런 관련이 없는 클래스이다. 둘 다 부모가 없으로 Object 를 자동으로 상속 받는다.

package lang.object.poly;

public class Dog {
    public void sound() {
        System.out.println("멍멍");
    }
}



==================


package lang.object.poly;

public class Car {
    public void sound() {
        System.out.println("붕붕");
    }
}

==================