Autor Beitrag
Mr.y
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mo 21.06.10 11:56 
Hallo, ich habe eine Frage zu der Implementierung von Klassen aus einer Schnittstelle heraus.
Und zwar, habe ich z.B wegen der Überladung 2 Methoden mit dem gleichen Namen aber verschiedenen Parametern:
z.B

Open(name, nachname)
Open(name)

wenn ich nun in irgendeine Klasse implementiere, möchte ich nur EINE Methode nutzen mit den benötigten Parametern
ABER er implementiert mir beide Methoden, oder auch alle, wobei ich ja nur ganz bestimmte in der jeweiligen Klasse
haben möchte, wie regele ich das, welche Methoden er implementiert????

Danke schon mal :)
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Mo 21.06.10 12:53 
Wenn du in einer Klasse ein Interfaces implementierst, musst du alle Member des Interfaces implementieren - da führt kein Weg dran vorbei. Das ist ja Sinn und Zweck eines Interfaces wenn du davon ableitest bist du dir sicher das die Methoden,... dann vorhanden sind.
Wenn du in Klassen nur Teile deiner überladenen Funktionen neu implementieren möchtest weil sie dort ein anderes Verhalten haben sollen, ist es vielleicht sinnvoll diese in eine Basisklasse anstatt in ein Interface auszulagern.

Zitat:
When a class or struct is said to inherit an interface, it means that the class or struct provides an implementation for all of the members defined by the interface. The interface itself provides no functionality that a class or struct can inherit in the way that base class functionality can be inherited. However, if a base class implements an interface, the derived class inherits that implementation.

Für diesen Beitrag haben gedankt: Mr.y
Mr.y Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mo 21.06.10 16:04 
user profile iconNemag hat folgendes geschrieben Zum zitierten Posting springen:
Wenn du in einer Klasse ein Interfaces implementierst, musst du alle Member des Interfaces implementieren - da führt kein Weg dran vorbei. Das ist ja Sinn und Zweck eines Interfaces wenn du davon ableitest bist du dir sicher das die Methoden,... dann vorhanden sind.
Wenn du in Klassen nur Teile deiner überladenen Funktionen neu implementieren möchtest weil sie dort ein anderes Verhalten haben sollen, ist es vielleicht sinnvoll diese in eine Basisklasse anstatt in ein Interface auszulagern.


jooaa, danke dir, hab das mittlerweile eingesehen^^
Mir ist klar geworden, dass man nicht zu viele Methoden-Signaturen reinmachen kann und dann muss man sie so allgemein wie möglich halten, damit die in jede Klasse reinpassen:)

Moderiert von user profile iconChristian S.: Quote-Tag repariert