File: rosetta-single-inheritance.tcl

package info (click to toggle)
nsf 2.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 13,208 kB
  • sloc: ansic: 32,687; tcl: 10,723; sh: 660; pascal: 176; javascript: 135; lisp: 41; makefile: 24
file content (23 lines) | stat: -rw-r--r-- 696 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# == Rosetta example: Inheritance/Single
#
# Show a tree of types which inherit from each other. The top of the
# tree should be a class called Animal. The second level should have
# Dog and Cat. Under Dog should be Lab and Collie.
# 
# https://rosettacode.org/wiki/Inheritance/Single
#

package req nx
package req nx::test

nx::Class create Animal
nx::Class create Dog -superclasses Animal
nx::Class create Cat -superclasses Animal
nx::Class create Collie -superclasses Dog
nx::Class create Lab -superclasses Dog

# Show the resulting class search order:
? {Lab info superclasses -closure} {::Dog ::Animal ::nx::Object}
? {[Collie new] info precedence} {::Collie ::Dog ::Animal ::nx::Object}