728x90
- 자꾸 Object 에 있는 메서드들을 오버라이딩할때 조심하라는데..
- Object 은 구상클래스로서([Concrete class]: new 키워드를 통해 인스턴스를 만드는 클래스)
- 이러한 구상클래스는 내부구현이 되어 있어야 한다.
- 하지만 몇몇 메서드 들은 되어 있지 않다.
- clone, toString, hashCode, equals 등등
- 이러한 메서드 들은 오버라이딩할때 지켜야할 몇가지가 있다.
- 이러한 주의점들과 해결책들을 계속 말해주는것 같다.
- 근데 왜 다른것들은 final 이 아니라 오버라이딩을 가능하게 했을까?
- 음..편의성 떄문인가 입맛대로 수정할 수 있게끔?필요할때마다 다른 기능을 구현해야할 상황이 있어서
===Cloneable 을 상속받아 clone 메서드를 override 하면 Cloneable 은 믹스인 인터페이스, Object 의 clone 동작 방식을 결정한다.
- 음..편의성 떄문인가 입맛대로 수정할 수 있게끔?필요할때마다 다른 기능을 구현해야할 상황이 있어서
- Object 은 구상클래스로서([Concrete class]: new 키워드를 통해 인스턴스를 만드는 클래스)
- Cloneable 인터페이스를 상속받아 오버라이딩 하여야 한다.
- Checked Exception 이므로 try catch 로 묶던지 throw 를 던지자.
728x90
'공부 > 이펙티브자바' 카테고리의 다른 글
[이펙티브자바]item 15. 클래스와 멤버의 접근 권한을 최소화하라 (0) | 2023.01.19 |
---|---|
[이펙티브자바]item14.Comparable을 구현할지 고려하라. (0) | 2023.01.19 |
[이펙티브자바]item12.toString을 항상 재정의하라. (0) | 2023.01.17 |
[이펙티브자바]item11.equals를 재정의하려거든 hashCode도 재정의하라. (0) | 2023.01.17 |
[이펙티브자바]item10.equals는 일반 규약을 지켜 재정의하라. (0) | 2023.01.17 |
댓글