Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Aclaración sobre Herencia de Clases (https://www.clubdelphi.com/foros/showthread.php?t=87488)

lugabame 13-01-2015 23:33:56

Aclaración sobre Herencia de Clases
 
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,

Cita:

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

:rolleyes:

Revisa este código:
Código Delphi [-]
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:
Espero sea útil :)

Nelson.

lugabame 14-01-2015 16:07:06

Muchas Gracias por la Aclaración
 
nlsgarcia Te agradezco de corazón por la ayuda me vino como añillo al dedo, muy claro y muy didáctico. ^\||/


La franja horaria es GMT +2. Ahora son las 18:29:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi