2009-10-31 2 views
9

의 내가 같이 몇 가지 클래스가 있다고 가정 해 봅시다 :보기의생성자 인수를 반복하지 않고 스칼라에서 서브 클래 싱을 수행하는 지름길?

abstract class View(val writer: XMLStreamWriter) { 
    // Implementation 
} 

class TestView(writer: XMLStreamWriter) extends View(writer) { 
    // Implementation 
} 

대부분의 서브 클래스가 다른 생성자 인수를하지 않을 수 있습니다. 나는 이런 식으로 뭔가를 쓸 수 있도록하고 싶습니다 :

class TestView extends View { 
    // Implementation 
} 

가 명시 적으로 생성자 인수를 정의하고 (슈퍼 클래스에 전달할 필요가 없도록 서브 클래스를 작성하는 몇 가지 바로 가기가 있다고 그래서 돈 수퍼 클래스의 서명을 변경하면 모든 하위 클래스를 다시 작성해야합니까?)

답변

11

나는 당신이 거기에있어 두려워합니다. 생성자는 상속되지 않거나 다형성 및 하위 클래스 생성자는 아니지만 직접 수퍼 클래스에 대해 생성자를 호출해야하며 항상 호출해야합니다. 0 인수 생성자가있는 경우를 제외하고 자동으로 수행하지 않아도됩니다. 「extends」절의 슈퍼 클래스의 이름

12
abstract class View { 
    def writer: XMLStreamWriter 
    // Implementation 
} 

class TestView(val writer: XMLStreamWriter) extends View { 
    // Implementation 
} 

이게 당신이 찾고 있는게 있나요?

관련 문제