1
와 DEF를 무시하는 것은 예를 들어 다음과 같은 고려 :스칼라 : 발
이abstract class Item {
def price: Double
def description: String
}
class SimpleItem1(override val price: Double, override val description: String) extends Item{}
class SimpleItem2(val price: Double, val description: String) extends Item{}
성공적으로 컴파일하고 모두 확장 클래스는 같은 방법이있다. 그들은 실제로 같은가요? 그렇지 않다면 - 차이점은 무엇입니까? 그렇다면 - 예를 들어, 조금 설명해주십시오. 왜 '오버라이드'를 선택하지 않았습니까?
마지막 문장을 제외하고는 답변입니다. 'override'를 쓰지 않아도되는 이점은 없으므로, 코드를 훨씬 더 명확하고 미래의 추가를 위해 더욱 안전하게 만드는 데 도움이됩니다. 일부 저장된 키 스트로크는 방해가 될만한 가치가 없습니다 (예는 코드 작성 방법에 대한 좋은 예입니다). – sschaef
@sschaef - 과부하로 인해 작동하지 않는 것이 좋은 디자인이라고 생각합니다. 나는 드물게 과부하를 사용해야하며, 나는 아무것도 놓치고 있다고 느끼지 않는다. 오버로드와 함께 작동하는 Swing과 같은 프레임 워크가 있지만, 일반적으로 클래스를 디자인하면이를 사용하지 않고 수행 할 수 있어야합니다. –
@ 0__ - 나는 sschaef가 의미하는 바를 생각한다. "문장을 무시할 때마다 덮어 쓰기를 써야한다. 구문이 허용된다 할지라도이 단어를 건너 뛰면 안된다." 그리고 당신의 마지막 문장이 조금 혼란 스럽기 때문에 그는 그것을 썼습니다. 나는 개인적으로 그것을 이해한다 : "당신이 재치를 무시할 때, 당신이 할 수있는 경우에"오버라이드 "단어를 사용하지 말라. 아직도 나는 무엇이 의미하는지에 관해서 틀릴지도 모른다. :) – GrayR