2009-10-31 12 views
9

Powiedzmy mam kilka klas tak:Skrót do podklasy w Scali bez powtarzania argumentów konstruktora?

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

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

Większość podklasy widzenia nie będą przybierać różne argumenty konstruktora. Chciałbym móc napisać coś takiego:

class TestView extends View { 
    // Implementation 
} 

Czy jest jakiś skrót napisać podklasy, dzięki czemu nie trzeba wyraźnie określić argumenty konstruktora i przekazać je do nadklasy (tak, że don czy będę musiał ponownie napisać wszystkie moje podklasy, jeśli zmienię sygnaturę nadklasy)?

Odpowiedz

11

Obawiam się, że jesteś tam sam. Konstruktory nie są konstruktorami dziedziczonymi lub polimorficznymi i podklasami, podczas gdy muszą i zawsze wywołują konstruktora dla swojej bezpośredniej nadklasy, nie mogą i nie mogą tego robić automatycznie, chyba że istnieje konstruktor o zerowym argumencie, co jest implikowane przez wzmiankę o nazwa nadklasy w klauzuli "rozszerza się".

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

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

Czy tego właśnie szukasz?

Powiązane problemy