2025-01-22 16:18:30 +01:00

38 lines
906 B
Haxe

package tests;
class Base
{
public function new() {}
@:nonVirtual public function getNvName() return "Base";
public function getName() return "Base";
}
class Derived extends Base
{
@:nonVirtual override public function getNvName() return "Derived";
override public function getName() return "Derived";
}
class TestNonVirtual extends haxe.unit.TestCase
{
public function testOverride()
{
var derived = new Derived();
assertTrue( derived.getName() == "Derived" );
assertTrue( derived.getNvName() == "Derived" );
var closure:Dynamic = derived.getNvName;
assertTrue( closure() == "Derived" );
var base:Base = derived;
assertTrue( base.getName() == "Derived" );
assertTrue( base.getNvName() == "Base" );
var closure:Dynamic = base.getNvName;
assertTrue( closure() == "Base" );
}
}