PDA

Ver la Versión Completa : Aclaración sobre Herencia de Clases


lugabame
13-01-2015, 23:33:56
Hola a todos después de mucho tiempo vuelvo, y aunque tarde feliz año nuevo jejejejeje :)
Bueno el asunto que me trae es si alguien me podría brindar un ejemplo donde una clase herede atributos de otra clase, porque tengo un diagrama de clases donde tengo una herencia y no se como pasarla a delphi.

De antemano muchas gracias.

nlsgarcia
14-01-2015, 01:36:59
lugabame,


...alguien me podría brindar un ejemplo donde una clase herede atributos de otra clase...

:rolleyes:

Revisa este código:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Math, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

// Clase Matemática Base
TMatBas = class
public
MsgUser : String;
function SumNum(N1, N2 : Double) : Double;
function SubNum(N1, N2 : Double) : Double;
function MulNum(N1, N2 : Double) : Double;
function DivNum(N1, N2 : Double) : Double;
end;

// Clase Matemática que Hereda de TMatBas
TMatAdv = class(TMatBas)
public
function SinNum(N1 : Double) : Double;
function CosNum(N1 : Double) : Double;
function TanNum(N1 : Double) : Double;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

// Método Suma
function TMatBas.SumNum(N1, N2: Double): Double;
begin
Result := N1 + N2;
end;

// Método Resta
function TMatBas.SubNum(N1, N2: Double): Double;
begin
Result := N1 - N2;
end;

// Método Multiplicación
function TMatBas.MulNum(N1, N2: Double): Double;
begin
Result := N1 * N2;
end;

// Método División
function TMatBas.DivNum(N1, N2: Double): Double;
begin
Result := N1 / N2;
end;

// Método Seno
function TMatAdv.SinNum(N1: Double): Double;
begin
Result := Sin(N1);
end;

// Método Coseno
function TMatAdv.CosNum(N1: Double): Double;
begin
Result := Cos(N1);
end;

// Método Tangente
function TMatAdv.TanNum(N1: Double): Double;
begin
Result := Tan(N1);
end;

// Cálculo de Funciones Matemáticas por Medio de Herencia
procedure TForm1.Button1Click(Sender: TObject);
var
N1, N2 : Double;
M : TMatAdv; // Declarar variable de clase

begin

M := TMatAdv.Create; // Instanciar variable de clase

N1 := StrToIntDef(Edit1.Text,0);
N2 := StrToIntDef(Edit2.Text,0);

// Uso de la variable de clase M por medio de funciones y atributos

M.MsgUser := 'Ejemplo de Cálculo de Funciones Matemáticas por Medio de Herencia';

ShowMessage(M.MsgUser);

ShowMessage(Format('N1 + N2 = %n',[M.SumNum(N1,N2)]));
ShowMessage(Format('N1 - N2 = %n',[M.SubNum(N1,N2)]));
ShowMessage(Format('N1 * N2 = %n',[M.MulNum(N1,N2)]));
ShowMessage(Format('N1 / N2 = %n',[M.DivNum(N1,N2)]));
ShowMessage(Format('Sin(N1) = %n',[M.SinNum(N1)]));
ShowMessage(Format('Cos(N1) = %n',[M.CosNum(N1)]));
ShowMessage(Format('Tan(N1) = %n',[M.TanNum(N1)]));

// Liberar variable de clase M
M.Free;

end;

end.

El código anterior en Delphi 7 sobre Windows 7 Professional x32, ejemplifica la herencia de clases por medio de funciones matemáticas.

Revisa esta información:

Object Oriented Programming in Delphi (https://app.box.com/s/vfbsfdnv9xmv9l24qdlp)

Espero sea útil :)

Nelson.

lugabame
14-01-2015, 16:07:06
nlsgarcia Te agradezco de corazón por la ayuda me vino como añillo al dedo, muy claro y muy didáctico. ^\||/