रेंडरिंगhi

sub

Translation status: हिन्दी reader-locale proof. Code fences render through the hi pipeline; prose is canonical Latin.

Declares a direct superclass or base type.

Aliases: extends

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

Category#

type

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()
}