2011-09-11 21 views

Respuesta

13

Me imagino que esto se debe a que no hay manera de hacerlos concretos:

class Foo extends Table { 
    override val records = 3 
} 

fracasarían, porque es records privado a Table.

Haría Table algo inútil. No puedo ver que duela cualquier cosa, solo que casi con toda seguridad indica un error por parte del programador.

19

Para ampliar un poco la respuesta de @ Owen: puede declarar miembros privados.

abstract class Table { 
    private val records: Int = 0 
} 

Pero no puede declarar a miembros privados abstractos. ¿Por qué? Porque cualquier clase concreta que amplíe una clase abstracta debe anular a los miembros abstractos, y no puede anular a un miembro privado. Por lo tanto, no podría tener ninguna clase concreta que extienda el Table en absoluto.

Cuestiones relacionadas