Ver Mensaje Individual
  #2  
Antiguo 14-01-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
lugabame,

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


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.
Responder Con Cita