class A
private:
var k : integer;
public:
proc get_A() :
integer
begin
return self.k;
end
proc set( k : integer )
begin
self.k
= k;
end
proc init()
begin
self.set(0);
end
end
class B subclassOf A
private:
var k : integer;
public:
proc get_B() :
integer
begin
return self.k;
end
proc init()
begin
super.init();
self.k
= 2;
end
end
class C subclassOf A
public:
proc get_A() :
integer
begin
return 0;
end
end
class Program
public:
proc run()
var
a : A;
b : B;
c : C;
begin
b = B.new();
write( b.get_B() );
a = b;
write( a.get_A() );
write( b.get_A() ); //
vai para método get_A da classe A
a = c;
write( a.get_A() ); // vai
para o método get_A da classe A
c
= C.new();
write( c.get_A() ); //
vai para método get_A da classe C
end
end