Hola,
Suponiendo que en Java sea igual que en Delphi, hasta donde yo llego un método "abstracto" en cierta clase está obligando a las clases descendientes a implementar dicho método. De otro modo (en el caso de Delphi) obtendrías un "warning" al tratar de compilar tal que así:
Cita:
[DCC Warning] Unit1.pas(31): W1020 Constructing instance of 'TMyChildClass' containing abstract method 'TMyClass.ShowMyName'
|
Es decir:
Código Delphi
[-]
unit Unit2;
interface
type
TMyClass = class(TObject)
public
function ShowMyName(): string; virtual; abstract;
end;
type
TMyChildClass = class(TMyClass)
end;
implementation
end.
Al derivar la clase "TMyChildClass" de "TMyClass" estamos obligados a implementar en "TMyChildClass" el método "abstracto" "ShowMyName()". De no hacerlo así, la advertencia de antes, en tiempo de diseño, y, en tiempo de ejecución, una excepción "EAbstractError" si tratamos de ejecutar el método en cuestión.
De tal modo que tendríamos que hacer algo así:
Código Delphi
[-]
unit Unit2;
interface
type
TMyClass = class(TObject)
public
function ShowMyName(): string; virtual; abstract;
end;
type
TMyChildClass = class(TMyClass)
public
function ShowMyName(): string; override;
end;
implementation
function TMyChildClass.ShowMyName(): string;
begin
result := ClassName;
end;
end.
Ya digo. Puede que vaya más allá, pero, hasta donde llego, sirve para obligar a las clases descendientes a implementar determinados métodos. Acaso algún otro compañero pueda corregirme o en todo caso proporcionar algo más de información al respecto.