2009-10-31 5 views
9

Disons que j'ai certaines classes comme ceci:Raccourci pour le sous-classement dans Scala sans avoir à répéter les arguments du constructeur?

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

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

La plupart des sous-classes de vue ne vont pas prendre différents arguments du constructeur. Je voudrais pouvoir écrire quelque chose comme ceci:

class TestView extends View { 
    // Implementation 
} 

est-il un raccourci pour écrire les sous-classes afin que vous ne devez pas définir explicitement le constructeur args et les transmettre à la superclasse (pour que je don ne dois-je pas réécrire toutes mes sous-classes si je change la signature de la superclasse)?

Répondre

11

Je crains que vous soyez seul ici. Les constructeurs ne sont pas des constructeurs hérités ou polymorphes et des sous-classes, alors qu'ils doivent et invoquent toujours un constructeur pour leur superclasse immédiate, ne le font pas et ne peuvent pas le faire automatiquement, sauf s'il existe un constructeur zero-arg implicite par la mention le nom de la superclasse dans une clause "extends".

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

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

Est-ce ce que vous cherchez?

Questions connexes