📝느낀 점
자바에서 모든 클래스의 부모는 object라는 사실은 '자바의 정석' 책에서 봤었다.
개발자 명시하지 않을 뿐 컴파일러가 바이트코드(.class) 만드는 과정에서 상속을 넣어주는 개념이라고 알고 있다.
"그런데, 왜? 뭘 받기 위해서?" 이런 고민을 하게 되었고, 이부분에 대해 공부를 하게 되었다.
가장 큰 이유는, Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 행동을 정의할 수 있기 때문인 것이다.
즉, 자바는 객체지향 프로그래밍이기에 원칙 중 상속과 다형성이 있기 때문인것 같다.
이러한 설계를 함으로써 이점은 뭘까?
표준화된 메서드
Object 클래스에는 모든 객체에서 공통적으로 사용되는 메서드가 정의되어 있다.
예를 들어, toString(), equals(), hashCode()와 같은 메서드가 포함되어 있다.
이러한 메서드를 모든 클래스에서 오버라이딩하고 사용자 정의 클래스에 맞게
구현함으로써 객체의 동작을 커스터마이즈 할 수 있다.
상속의 유연성
모든 클래스가 Object 클래스를 상속 받도록 함으로써,
모든 객체를 동일한 유형으로 처리하고 다룰 수 있다.
이것은 다형성을 가능하게 하며, 예를 들어 Object 클래스로
참조하는 변수를 사용하여 어떤 객체든 다룰 수 있다.
자바의 최상위 클래스
Object 클래스는 자바의 모든 클래스 계층 구조의 최상위에 위치하며,
이것은 객체 지향 프로그래밍에서 모든 클래스를 연결하는 공통된 부분입니다.
'Java' 카테고리의 다른 글
상속 정의 / 상속이 갖는 단점들은 무엇인가요? (0) | 2023.11.06 |
---|---|
인터페이스는 상수 필드만 선언이 가능한 이유는? (0) | 2023.11.06 |
실행을 위해서 왜 main 메서드가 필요한 것인가요? (0) | 2023.11.06 |
System.out.println() 내부 동작원리 (0) | 2023.11.06 |
책임, 위임, 협력 (0) | 2022.12.13 |