In URBI, every method and every attribute is virtual, which means that if your class redefines it, it becomes its own definition, otherwise the definition (or value) of the parent class will be used.
Consider the following example:
class myclass {
var x;
function f();
};
function myclass.f() {
echo ("I'm in myclass");
};
Then:
sub = new myclass; sub.f(); [01130940] *** I'm in myclass
The definition of f is retrieved from myclass. Now, we can redefine it:
function sub.f() {
echo ("I'm in sub!");
};
And call it again:
sub.f(); [01173929] *** I'm in sub!
In the same way, attributes get their value from the parent class, unless redefined in the child class. The following example illustrates the case with the above myclass and sub prototypes:
myclass.x = 1; sub.x; [01198648] 1.000000 sub.x = 4; sub.x; [01210231] 4.000000 myclass.x; [01214327] 1.000000