[JAVA] Object 다형성

뚜밍·2024년 4월 3일
0

JAVA

목록 보기
2/4

Java에서 Object class는 모든 클래스의 최상위 부모 클래스이다.

모든 클래스는 직접 또는 간접적으로 Object class를 상속한다. 그러므로 모든 객체는 Object 클래스 멤버들을 상속받는다.

Object 클래스의 몇가지 주요 메서드

  • equals(object obj): 객체의 동등성을 확인하는데 사용. 기본적으로 이 메서드는 두 객체의 참조가 같은지 비교한다. 그러나 대부분 클래스에서 이 메서드를 오버라이딩 하여 객체의 내용을 비교하도록 구현한다.
  • hashCode(): 객체의 해시 코드를 반환한다. 해시코드는 객체를 해시 테이블과 같은 자료구조에 저장할때 사용된다. 일반적으로 이 메서드를 오버라이딩 하여 객체의 고유한 속성을 기반으로 해시코드를 생성
  • toString(): 객체를 문자열로 표현하는데 사용된다.

Object class의 존재는 다형성을 구현하는데 중요한 역할을 함!

최상위 부모 클래스이기때문에 모든 타입을 받을 수 있다.

그러나, Object class의 한계

  1. 타입 안정성(Type safety) 부족: Object 타입을 사용하여 객체를 처리할때 컴파일러가 타입을 확인하지 않음. 따라서 실행 시간에 오류가 발생할 수 있음. 예를들어 Object 타입으로 다루는 객체를 잘못된 타입으로 형변환 할 경우 'classCastException'이 발생함
  2. 캐스팅의 필요성: Object 타입으로 참조된 객체를 다시 원래의 타입으로 변환하기 위해 명시적인 형변환이 필요! 이는 코드를 더 복잡하게 만들고 가독성을 낮출 수 있음
  3. 메서드 호출의 제약: Object 타입으로 참조된 객체는 해당 클래스의 메서드에 직접 접근할 수 없다. 따라서 원래 클래스에 정의된 메서드를 사용하기 위해 형변환이 필요하다.
    ...
profile
성장하고싶운 갭알자 🥺🔥

0개의 댓글