HihoBookStudy / EffectiveJava

이펙티브 자바 북스터디입니다.
1 stars 0 forks source link

[Item 20] Default method의 제약 #29

Closed zpqmdh closed 2 months ago

zpqmdh commented 2 months ago

책 132쪽에서는 Default method 의 제약에 대해 설명하고 있습니다.

디폴트 메서드에도 제약은 있다. 많은 인터페이스가 equalshashCode 같은 Object 의 메서드를 정의하고 있지만, 이들은 default method로 제공해서는 안 된다. 또한 인터페이스는 인스턴스 필드를 가질 수 없고 public이 아닌 정적 멤버도 가질 수 없다(단, private 정적 메서드는 예외다). 마지막으로, 여러분이 만들지 않은 인터페이스에는 default method를 추가할 수 없다.

총 3가지 제약에 대해 구체적으로 왜 안 되는지 설명해주실 수 있나요?

ForteEscape commented 2 months ago

Q.

Default method의 제약에 대해 설명하고 있습니다. 이때 3가지 제약에 대해 구체적으로 왜 안 되는지 설명해주실 수 있나요?

A.

1. 인터페이스가 인스턴스 필드를 가질 수 없는 이유


2. 인터페이스가 public이 아닌 static 멤버를 가질 수 없는 이유


3. 우리가 만들지 않은 인터페이스에서는 default method를 추가할 수 없다.


4. equals(), hashCode() 메서드는 default method로 제공하면 안된다.