Domanda

Diciamo che ho alcune classi in questo modo:

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

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

La maggior parte delle sottoclassi di View non stanno andando a prendere diversi argomenti del costruttore. Mi piacerebbe essere in grado di scrivere qualcosa di simile a questo:

class TestView extends View {
    // Implementation
}

C'è qualche scorciatoia per scrivere sottoclassi in modo che non c'è bisogno di definire esplicitamente le args costruttore e passarli alla superclasse (in modo che io non devo riscrivere tutti i miei sottoclassi se cambio la firma di la superclasse)?

È stato utile?

Soluzione

Ho paura che sei sul proprio lì. I costruttori non sono ereditate o costruttori polimorfici e sottoclasse, pur dovendo sempre fare invocare un costruttore per la loro immediata superclasse, non e non possono avere quello fatto automaticamente, a meno che non ci sia un costruttore zero arg, che è implicita nella menzione di nome della superclasse in un "si estende" clausola.

Altri suggerimenti

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

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

E 'questo quello che stai cercando?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top