AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Interface richtig verstanden?
Thema durchsuchen
Ansicht
Themen-Optionen

Interface richtig verstanden?

Ein Thema von EdAdvokat · begonnen am 3. Mai 2019 · letzter Beitrag vom 9. Mai 2019
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.212 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Interface richtig verstanden?

  Alt 3. Mai 2019, 17:44
Die Antwort auf deine Frage ist "Ja":
  • TFigure ist ein TInterfacedObject
  • TQuadrat ist ein TFigure, folglich ist es auch ein TInterfacedObject und bringt alles mit (wie z.B. Interface-Unterstützung)

Aber:
  1. Du deklarierst die Felder "FSeiteA" und "FSeiteB" einmal in TFigure, und dann noch einmal in "TQuadrat".
  2. Mit den Methoden verhält es sich ähnlich: Dass die Methoden in "TFigure" nicht virtual sind ist eigentlich ein Fehler. Hast du das mit virtuellen Methoden ("Polymorphie") verstanden? Du brauchst keine Interfaces für Polymorphie, aber umgekehrt muss man das verstanden haben bevor man sich an Interfaces wagt
  3. Sicher ist es nur ein Beispiel, aber mit der Klasse TFigure hast du eigentlich nichts gewonnen. Wie würdest du denn Umfang() oder Flächeninhalt() allgemeingültig implementieren wollen? Die Klasse an sich ist völlig abstrakt. Um das zu signalisieren kannst du z.B. statt TFigure = class(TInterfacedObject, IFigur) auch schreiben TFigure = class abstract(TInterfacedObject, IFigur) . Damit bekämst du auch eine Compiler-Warnung wenn du eine TFigure statt z.B. einem TQuadrat erstellst, denn ein TFigure ist nur eine abstrakte Vorlage.
  Mit Zitat antworten Zitat
 


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 03:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz