mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-19 05:50:30 +00:00
Rework explanation a bit (thanks flaviu)
This commit is contained in:
@@ -83,9 +83,9 @@ no ancestor are implicitly ``final``. You can use the ``inheritable`` pragma
|
||||
to introduce new object roots apart from ``system.RootObj``. (This is used
|
||||
in the GTK wrapper for instance.)
|
||||
|
||||
We always use ref objects for inheritance in this tutorial. When you store a
|
||||
non-ref object in a variable of a parent type, the additional fields are cut
|
||||
off.
|
||||
Ref objects should be used whenever inheritance is used. It isn't strictly
|
||||
necessary, but with non-ref objects assignments such as ``let person: Person =
|
||||
Student(id: 123)`` will truncate subclass fields.
|
||||
|
||||
**Note**: Composition (*has-a* relation) is often preferable to inheritance
|
||||
(*is-a* relation) for simple code reuse. Since objects are value types in
|
||||
|
||||
Reference in New Issue
Block a user