type Base; type Derived; impl Base { fn foo() { println "Base.foo()"; } } impl Derived < Base { fn foo() { println "Derived.foo()"; super.foo(); } } Derived().foo(); // out: Derived.foo() // out: Base.foo()