Groovy의 특성, 상속 및 인터페이스는 언제 사용합니까?


10

나는 그루비를 배우고 난 그냥의 추가 2.3에 추가 된 새로운 기능에 대해 배운 특색 . 나에게 그것은 Traits가 기본적으로 수퍼 클래스와 인터페이스가 할 수있는 모든 것을 할 수있는 것처럼 보입니다.

Groovy에 Traits를 추가하면 상속 및 인터페이스가 더 이상 사용되지 않습니까?

그렇지 않다면 이러한 각 메커니즘을 사용하기에 가장 좋은 시간은 언제입니까?



"groovy와 나는 방금 추가 한 2.3에 추가 된 새로운 기능에 대해 배웠다"-Traits는 Groovy ++ 부스터라고하는 AST 애드온을 통해 2.0 이전 Groovy에 추가되었습니다. code.google.com/p / groovypptest / wiki / Traits
Vorg van Geir

특성에 대한 문서 를 실제로 읽어야합니다 . 문서에 대해 이야기하는 모든 것을 언급하지 않고는 여기에 주어진 대답이 없습니다. 섹션 당신은해야 특히주의하십시오 (13) - 끝
smac89

답변:


4

특성은 (추상적 인) 클래스의 상속과 인터페이스 구현의 두 가지 장점을 모두 결합합니다. 특성은 기본 메소드 구현을 포함 할 수 있지만 유형은 여러 특성을 한 번에 구현할 수 있습니다. 이것은 일종의 다중 상속을 허용하지만 치명적인 죽음의 다이아몬드를 피하는 좋은 방법 입니다.

시작하는 방법을 모르면 특성을 사용하십시오. 유연성을 확보하고 필요한 경우 나중에 인터페이스 또는 클래스 상속으로 전환 할 수 있습니다.


3
인터페이스에서 기본 방법을 정의 할 수 있으므로 논리적 차이점은 무엇입니까?
Gilad Baruchian

또한 특성과 인터페이스 기본 방법의 차이점과 혼동됩니다. 나는 그루비의 특성이 자바의 기본 메소드보다 먼저 도입되었다고 가정 할 수있다
olyv

형질은 자바의 인터페이스가 당신을 제한하기 때문에 정적 필드뿐만 아니라 일반 필드를 정의 할 수 있습니다.
smac89

특성에 대해 혼란 스러우면 docs를 읽으십시오 . 그들은 매우 유익합니다
smac89

1
@ smac89, 감사합니다, 정말 도움이되었습니다!
olyv
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.