Java - Object와 오버라이딩

이유석·2022년 9월 27일
0
post-thumbnail

Object 클래스

  • 모든 클래스의 최상위 클래스
  • 즉, 모든 클래스들은 Object의 메서드를 사용할 수 있다.
    • 사용할 때 반드시 오버라이딩을 통하여 재정의 후 사용하여야 합니다.

Object의 메서드

  • equals
    • 객체가 가진 값을 비교할 때 사용

    • 객체의 동등성의 비교 기준을 정할 수 있다.

      동등성 : 두 개의 객체가 같은 정보를 갖고 있는 경우를 의미한다. 동등성은 변수가 참조하고 있는 객체의 주소가 서로 다르더라도 내용만 같으면 두 변수는 동등하다고 이야기할 수 있다.

      동일성 : 두 개의 객체가 완전히 같은 경우를 의미한다. 여기서 완전히 같다는 뜻은 두 객체가 사실상 하나의 객체로 봐도 무방하며, 주소 값이 같기 때문에 두 변수가 같은 객체를 가리키게 된다.

  • toString
    • 객체가 가진 값을 문자열로 반환
  • hashCode
    • 객체의 해시코드 값 반환
    • 객체들은 서로다른 해시코드 값을 갖고있다.

오버라이딩

  • 상속 관계에 있는 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 같은 시그니쳐(메서드 이름, 파라미터, 반환값)를 갖는 메서드로 다시 정의하는 것이라고 할 수 있습니다.

오버라이딩의 조건

  • 오버라이딩이란 메소드의 동작만을 재정의하는 것이므로, 메소드의 선언부는 기존 메소드와 완전히 같아야 합니다.

    하지만 메소드의 반환 타입은 부모 클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경할 수 있습니다.

  • 부모 클래스의 메소드보다 접근 제어자를 더 좁은 범위로 변경할 수 없습니다

  • 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없습니다.

Programmers Java 중급 강의를 수강 후 작성하였습니다.

profile
https://github.com/yuseogi0218

0개의 댓글