RosettaCodeData/Task/Polymorphic-copy/OxygenBasic/polymorphic-copy.oxy
Ingy döt Net b83f433714 tasks a-s
2013-04-10 23:57:08 -07:00

37 lines
460 B
Text

'======
class T
'======
float vv
method constructor(float a=0) {vv=a}
method destructor {}
method copy as T {new T ob : ob<=vv : return ob}
method mA() as float {return vv*2}
method mB() as float {return vv*3}
end class
'======
class S
'======
has T
method mB() as float {return vv*4} 'ovveride
end class
'====
'TEST
'====
new T objA(10.5)
let objB = cast S objA.copy
print objA.mb 'result 31.5
print objB.mb 'result 42
del objA : del objB