Methods and properties can be overridden. They must be declared as overridable:
package MyLib
using Js
class MyBaseClass
protected _myBackingProperty float set
overridable myProperty float
get : return this._myBackingProperty
set : this._myBackingProperty = value
end
overridable doSomething()
Console.log("Hello world")
end
end
class MyClass extends MyBaseClass
override myProperty float
get : return this._myBackingProperty
set : this._myBackingProperty = 2 * value
end
override doSomething()
Console.log("Something else")
end
end
If a method or property is not declared as overridable, the force override keyword must be used to override it:
package MyLib
using Js
class MyBaseClass
doSomething()
Console.log("Hello world")
end
end
class MyClass extends MyBaseClass
force override doSomething()
Console.log("Forced to do something else")
end
end