java - error in attribute extended from trait in scala -
i using scala , have trait attribute "name" extended trait in userclass accessing attribute
when tried declare name in trait this
val name : string
it gave error in child class child class ha unimplemented member when tried
val name : string = ""
it worked fine please tell me difference , reason why not working before , why worked after modification
i'm assuming code looks this:
trait hasname { val name : string } class person extends hasname
a trait is, nature, abstract
, means allowed have unimplemented methods. in effect, trait
declaring this:
all classes extending
hasname
guaranteed haveval name : string
instance variable. in variable dependent on actual child class
in case above, code expanded to:
trait hasname { val name : string = ??? }
where ???
means particular 'function' unimplemented.
after modification:
trait hasname { val name : string } class person extends hasname {val name : string = ""}
the extending class, person
overrides hasname
trait's implementation, or in case, lack thereof, own implementation.
alternatively, if do:
trait hasname { val name : string = "" }
you adding implementation hasname
, every child class will, default, have implementation.
Comments
Post a Comment