/*
Ejemplo de utilización de herencia dinámica
jbgarcia@uvigo.es
*/
object Empleado
attribute + nombre = "Juan nadie" ;
attribute + salario = 18000 ;
method + toString ( )
{
return nombre ;
}
method + ponSalario ( s )
{
salario = s ;
return ;
}
endObject
object Directivo : Empleado
method + toString ( )
{
reference toret = super ( ) ;
return toret.concat ( " (directivo)" ) ;
}
endObject
object EmpleadoAuxiliar : Empleado
method + toString ( )
{
reference toret = super ( ) ;
return toret.concat ( " (empleado)" ) ;
}
endObject
object EmpleadoEmpresa : EmpleadoAuxiliar ( salario < 20000 ),
Directivo
( salario >= 20000 )
method + toString ( )
{
return super ( ) ;
}
endObject
object AppDinamica : ConsoleApplication
method + doIt ( )
{
reference empl = EmpleadoEmpresa.copy ( "" ) ;
System.console.write ( empl ) ;
System.console.lf ( ) ;
empl.ponSalario ( 40000 ) ;
System.console.write ( empl ) ;
System.console.lf ( ) ;
return ;
}
endObject