2017-02-04 6 views
0

방법을 사용하는 동안 추상 메소드를 오버라이드 (override) 그러나 이것은 합법적 인하지 ("Foo 클래스의 방법 바는 그것이 않는 추상적하지 않을 수 있습니다 , 슈퍼에서 액세스 추상으로 선언 된 멤버 에 의해 재정의되고 "inturn은 Traits에만 합법적입니다."보다 우선합니다.나는이</p> <pre><code>abstract class Foo { def bar:String def modifiedFoo:Foo = new Foo(){ override def bar = super.bar+"n" } } </code></pre> <p>그런 짓을 할

수정 된 메서드 을 서명 modifiedFoo (foo : Foo)가 포함 된 컴패니언 개체로 이동할 수 있지만 덜 우아합니다. 덜 우아합니다. 이 문제를 어떻게 처리합니까?

답변

2

내가 방금 다음과 같은 방법으로 self을 사용할 수 있다고 생각 :

abstract class Foo { 

    self: Foo => 

    def bar: String 

    def modifiedFoo: Foo = new Foo() { 
    override def bar = self.bar + "\n" 
    } 

} 
+0

덕분에,이 도움이 – gcc