1
Groovy Traits에 관한 많은 블로그에서 다이아몬드 문제를 해결할 것이라고 언급했습니다. 하지만 그 특성이 어떻게 다이아몬드 문제를 해결할 것인지는 분명하지 않습니다.그루비 특유의 다이아몬드 문제
아무 설명해주세요.
Groovy Traits에 관한 많은 블로그에서 다이아몬드 문제를 해결할 것이라고 언급했습니다. 하지만 그 특성이 어떻게 다이아몬드 문제를 해결할 것인지는 분명하지 않습니다.그루비 특유의 다이아몬드 문제
아무 설명해주세요.
diamond problem은 다중 상속이 있고 두 개 이상의 수퍼 클래스가 동일한 서명으로 하나 이상의 함수를 정의 할 때 문제가됩니다.
Groovy 형질을 사용하면 동작이 잘 정의됩니다. 기본적으로 마지막 구현이 선택됩니다.
class E implements A,B {
String name() { A.super.name() + B.super.name() }
}
assert new E().name() == "AB"
이 특성은 자바 (8)와 동일한 방식으로 다이아몬드 문제를 해결 자바 8. – Souvik
의 같은 방식으로 처리됩니다
당신이 원하는 하나를 선택 할 수있다. 확인 할수 있어요. – Souvik
@Souvik 간단한 대답은 no입니다. Java 8은 인터페이스에서 기본 구현으로 다이아몬드 문제가 발생했을 때 다르게이를 해결합니다. 예를 들어 [이 블로그 게시물] (https://www.javabrahman.com/java-8/java-8-multiple-inheritance-conflict-resolution-rules-and-diamond-problem/)을 참조하십시오. 자바 8의 충돌 해결 규칙. – Steinar