... | ... | @@ -13,8 +13,13 @@ _Semantic description_ |
|
|
|All fields may be declared without initializer, even const and template fields.|:x:|
|
|
|
|A class can be declared with the @trait modifier.|:white_check_mark:|
|
|
|
|A trait class is an abstract class and can not be instantiated.|:x:|
|
|
|
|. It also shall only declare methods without function bodies as members and no constructor.|:white_check_mark:|
|
|
|
|
|
|
|It also shall only declare methods without function bodies as members and no constructor.|:white_check_mark:|
|
|
|
|A normal class can extend at most one other normal class and also any number of trait classes|:white_check_mark:|
|
|
|
|Trait classes can only extend trait classes but not normal classes.|:white_check_mark:|
|
|
|
|The resulting type
|
|
|
of a class definition is the set of object instances of the class itself and all instances of its direct or indirect subclasses.|:question:|
|
|
|
| A subclass is a subtype of its direct and indirect superclasses and supertraits and its object instances are type compatible with them.|:question:|
|
|
|
|If a class does not explicitly extend another class type, it implicitly extends the root class type object.|:x:|
|
|
|
|
|
|
_Restrictions_
|
|
|
|
... | ... | |