충분히 쌓여가는
Object 클래스(모든 클래스의 조상), toString() 사용할 수 있는 이유 본문
Object 클래스
부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다
모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받는다(toString(), equals(Object obj, hashCode())
부모가 없는 클래스를 컴파일하면 extends Object 라는 것을 컴파일러가 자동으로 추가해준다
상속 계층도
toString() 메서드를 사용할 수 있는 이유
Object 클래스를 extends해서 가지고 있기 때문
c.toString()에서 toString()을 안붙이고 참조변수 c만 사용해도 된다(println() 메서드의 기능, 참조변수만 있으면 toString()를 호출함)
class MyPoint extends Object {
int x;
int y;
}
class Circle extends Object { // 포함
MyPoint p = new MyPoint();
int r;
}
public class InheritanceTest {
public static void main(String[] args) {
Circle c = new Circle();
System.out.println(c.toString()); // Circle@4c203ea1
System.out.println(c); // Circle@4c203ea1
Circle c2 = new Circle();
System.out.println(c2.toString()); // Circle@27f674d
}
}
'Java > 객체지향' 카테고리의 다른 글
오버로딩(overloading) vs 오버라이딩(overriding) (0) | 2023.06.06 |
---|---|
메서드 오버라이딩(overriding), toString을 사용하여 출력하기 (0) | 2023.06.06 |
단일 상속(Single Inheritance) (0) | 2023.06.05 |
상속이냐 포함이냐 (클래스간의 관계 설정) (1) | 2023.06.05 |
포함(Composite) 관계 (0) | 2023.06.04 |