sub
Translation status: Tiếng Việt reader-locale proof. Code fences render through the vi pipeline; prose is canonical Latin.
Declares a direct superclass or base type.
Aliases: extends
Syntax: genus <name> sub <parent> <block>
Category#
type
Related#
Examples#
radix/corpus/sub/sub.fab (canonical · keyword)#
Declares a direct superclass or base type.
# =============================================================================
# sub — Declares a direct superclass or base type.
# =============================================================================
#
# What this teaches:
# • Genus inheritance — using `sub` to establish an is-a relationship between types
# • Method dispatch — inherited methods are available on child genus instances
#
# Common mistakes:
# • confusing sub (type inheritance) with intra (membership range) or in (mutable parameter mode)
#
# See also: genus, implet
# =============================================================================
# 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
class Animal {
string nomen
}
# Canis inherits Animal's structure
class Canis extends Animal {
string nomen
fn clama() → string {
return self.nomen + " latrat"
}
}
main {
const _ canis ← Canis { nomen = "Lupa" }
print canis.clama()
}