AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klassen
Thema durchsuchen
Ansicht
Themen-Optionen

Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klassen

Ein Thema von Luckie · begonnen am 1. Okt 2008 · letzter Beitrag vom 2. Okt 2008
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 13:11
darf ich etwas zwischenfragen?

wenn ich Codewalker richtig verstanden habe, dann ist so etwas möglich?
(Dreieck,Rechteck,Kreis,Trapez....)

Delphi-Quellcode:
agm = array [0..5] of TGeometrischeFigur ;

for i:=0 to 5 do
  flaeche:=agm[i].BerechneFläche;
Gruß K-H
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 13:16
Jupp das ist möglich, wobei gilt:

Delphi-Quellcode:
agm[0] := TDreick.Create;
agm[1] := TKreis.Create;
[...]
Heißt also, du musst für die abstrakten Elemente deines Array konkrete Klassen "createn".
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 13:39
Jepp, hab mal schnell ein Beispiel geschrieben:
Delphi-Quellcode:
program Tiereklassen;

uses
  Windows;

{$APPTYPE CONSOLE}

type
  TTier = class
  protected
    procedure GibLaut; virtual; abstract;
  end;

  THund = class(TTier)
  public
    procedure GibLaut; override;
  end;

  TKatze = class(TTier)
  public
    procedure GibLaut; override;
  end;

  TKuh = class(TTier)
  public
    procedure GibLaut; override;
  end;

procedure THund.GibLaut;
begin
  writeln('Wau');
end;

procedure TKatze.GibLaut;
begin
  writeln('Miau');
end;

procedure TKuh.GibLaut;
begin
  writeln('Muh');
end;

var Tiere: array[0..2] of TTier;

begin
  Tiere[0] := THund.Create;
  try
    Tiere[1] := TKatze.Create;
    try
      Tiere[2] := TKuh.Create;
      try
        Tiere[0].GibLaut;
        Tiere[1].GibLaut;
        Tiere[2].GibLaut;
      finally
        Tiere[2].Free;
      end;
    finally
      Tiere[1].Free;
    end;
  finally
    Tiere[0].Free;
  end;
  readln;
end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 13:41
Hallo Nachti1505,

davon bin ich ausgegangen, denn die "konkreten" Klassen (TKreis,TDreieck..) müssen ja erst definiert werden, damit ich die überhaupt erst einmal eine (bzw. die) Flächenberechnungsroutine(n) habe .

sonst gibt's doch Fehlermeldungen bzgl. "Abstrakter Methoden".

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 14:35
Letztendlich geht es mir um die Frage: "Warum abstrakte Klassen?"
Michael
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 15:16
Zitat von Luckie:
Letztendlich geht es mir um die Frage: "Warum abstrakte Klassen?"
Die Frage wurde doch hier aussführlich beantwortet. Was ist denn da noch unklar?

P.S.: Ich könnte auf Wunsch noch ein ausführlicheres Beispiel mit Geometrischen Formen hochladen.
Jan
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#17

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 16:02
Ein anderes Beispiel:
In meiner 2D Grafikbibliothek wird die Grafikschnittstelle so abstrahiert, dass man jede beliebige Grafikschnittstelle (sprich OpenGL oder Direct3D) über eine DLL damit verwenden kann.
Hierbei liegt die abstrakte Klassendefinition in einer einzelnen Unit, die sowohl von Host-Applikation als auch der DLL eingebunden wird. Die abstrakten Methoden der verschiedenen Klassen werden erst in der DLL implementiert.

Vergleiche:
Interface: http://andorra.cvs.sourceforge.net/v...w=markup#l_279
Implementierung: http://andorra.cvs.sourceforge.net/v...ew=markup#l_28
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 16:28
Zitat von Mr_G:
Zitat von Luckie:
Letztendlich geht es mir um die Frage: "Warum abstrakte Klassen?"
Die Frage wurde doch hier aussführlich beantwortet. Was ist denn da noch unklar?
Ich wllte die Fragestellung nur auf den Punkt bringen.
Michael
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#19

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 16:28
Hallo Luckie,

Ich denke man könnte die abstrakte Klasse als Prototypen bezeichnen.
In meiner Praxis gäbe es so etwas wie TDatenLesen und als konkrete Umsetzung gäbe es TExelLesen3,TExcelLesen4,TExcelLesen95 usw. Im Hauptprogramm arbeite ich nur mit TDatenlesen (bzw. den dort bekannt gemachten Methoden) und in Unterroutinen wird dann die "richtige" Klasse verwendet,bzw. die "richtige" Instanz erstellt.
.
Ich denke TStrings als abstakte Klasse und Tstringlist als "konkrete" Umsetzung sind auch ein Beispiel;

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Sinn, Nutzen und Einsatzmöglichkeit von abstrakten Klass

  Alt 1. Okt 2008, 16:37
Zitat von p80286:
Ich denke man könnte die abstrakte Klasse als Prototypen bezeichnen.
Ich galube, das ist eine gute Zusammenfassung.
Michael
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz