Renderingla

sub

Declares a direct superclass or base type.

Aliases: extends

Syntax: genus <name> sub <parent> <block>

Category

type

Related

Examples

examples/corpus/sub/sub.fab (canonical · keyword)

Declares a direct superclass or base type.

# sub — genus inheritance (extends a parent genus)
#
# genus <Nomen> sub <Parent> { … }   -- child inherits parent fields and methodi
#
# GRAMMAR:
#   genusDecl :← 'genus' ident 'sub' ident block
#
# EXPECTED OUTPUT:
#   Lupa latrat

genus Animal {
    textus nomen
}

# Canis inherits Animal's structure
genus Canis sub Animal {
    textus nomen

    functio clama() → textus {
        redde ego.nomen + " latrat"
    }
}

incipit {
    fixum _ canis ← Canis { nomen = "Lupa" }
    nota canis.clama()
}