Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überschriebene Methode in Kindklasse überladen (https://www.delphipraxis.net/20368-ueberschriebene-methode-kindklasse-ueberladen.html)

mirage228 16. Apr 2004 18:11


Überschriebene Methode in Kindklasse überladen
 
Hallo,

ich hab folgendes Konstrukt (andere Klassen/Methodennamen, aber selbe Situation)

Delphi-Quellcode:
type
  TBasisKlasse = class(TObject)
  private
  public
    procedure DoSomething(A: Integer); virtual;
end;
Nun wollte ich in der Kindklasse folgendes machen
Delphi-Quellcode:
type
  TKindKlasse = class(TBasisKlasse)
  private
  public
    procedure DoSomething(A: Integer); overload; override;
    procedure DoSomething(X: String); overload; // [Warnung] uAppDocumentClasses.pas(281): Methode 'DoSomehting' verbirgt virtuelle Methode vom Basistyp 'TBasisKlasse'
end;
Es geht mir dabei um die Warnung:
Code:
 [Warnung] uAppDocumentClasses.pas(281): Methode 'DoSomehting' verbirgt virtuelle Methode vom Basistyp 'TBasisKlasse'
Nun, eigentlich hat der Compiler ja völlig recht, aber wie kann ich dieses Problem nun trotzdem lösen, sodass ich und der Compiler zufrieden sind? Ist mein vorhaben überhaupt mit den "Gesetzen" von OOP / Delphi vereinbar?

mfG
mirage228

Bernhard Geyer 16. Apr 2004 18:19

Re: Überschriebene Methode in Kindklasse überladen
 
Probier mal folgendes (nicht getestet):

Code:
type
  TKindKlasse = class(TBasisKlasse)
  private
  public
    procedure DoSomething(A: Integer); overload; override;
    procedure DoSomething(X: String); overload; virtual; // Diese Signatur ist ja noch nicht als überschreibbar definiert
end;

mirage228 16. Apr 2004 18:22

Re: Überschriebene Methode in Kindklasse überladen
 
Zitat:

Zitat von Bernhard Geyer
Probier mal folgendes (nicht getestet):

Code:
type
  TKindKlasse = class(TBasisKlasse)
  private
  public
    procedure DoSomething(A: Integer); overload; override;
    procedure DoSomething(X: String); overload; virtual; // Diese Signatur ist ja noch nicht als überschreibbar definiert
end;

Hi,

Danke für deinen Vorschlag.
Aber leider funktioniert es so nicht, denn die Warnung ist immer noch da :-\

mfG
mirage228

Tryer 16. Apr 2004 21:26

Re: Überschriebene Methode in Kindklasse überladen
 
Delphi-Quellcode:
type
  TBasisKlasse = class(TObject)
  public
    procedure DoSomething(A: Integer); overload; virtual;
end;
Wenn Du die Methode bereits in der Basisklasse als overload deklarierst bleibt die Warnung aus.

MfG,
Tryer

mirage228 19. Apr 2004 14:12

Re: Überschriebene Methode in Kindklasse überladen
 
Zitat:

Zitat von Tryer
Delphi-Quellcode:
type
  TBasisKlasse = class(TObject)
  public
    procedure DoSomething(A: Integer); overload; virtual;
end;
Wenn Du die Methode bereits in der Basisklasse als overload deklarierst bleibt die Warnung aus.

MfG,
Tryer

Hi,

vielen Dank, es klappt. :thuimb: :cheers:

mfG
mirage228


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 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 by Thomas Breitkreuz