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("붕붕");
}
}
==================