Mehrfachvererbung und Interfaces

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrfachvererbung und Interfaces

    Hallo zusammen

    Ich habe eine Stilfrage (so hoffe ich). Und zwar geht's um PHP-OO:

    Die Ausgangslage ist folgende:
    • Ich habe eine Klasse A.
    • Ich habe eine Klasse AA die von A erbt (extends A)
    • Ich habe eine Klasse AB die von A erbt (extends A)
    • Ich hab ein Interface I


    Jetzt ist meine frage, was ist sauberer:
    1. Das Interface I in der Klasse A implementieren und dann in den Klassen AA, AB die Methoden der A-Klasse überschreiben
    2. Das Interface in die Klasse AA und AB implementieren


    Gibt es da klare Vor- / Nachteile für die 1. oder 2. Variante? Was würdet ihr machen?

    Danke schon im Voraus .

    EDIT Mehrfachvererbung ist natürlich Quatsch im Titel... ist nur eine einfache Vererbung .
    Last edited by pascal007; 20-01-2011, 13:54.

  • #2
    Hallo,

    angenommen, es könnte später eine Klasse AC extends A geben, würde die das Interface immer auch implementieren oder nicht? Wenn alle Unterklassen von A das Interface implementieren müssen, dann ist es besser, das gleich in A zu tun, wenn nur wenige Unterklassen es implementieren, kannst du es in denen einzeln machen. In allen anderen Fällen würde ich eine Unterklasse für die implementierenden machen und von dort aus weiter vererben:

    Code:
    A
    +--AI extends A implements I
    |  +--AIA extends AI
    |  +--AIB extends AI
    |
    +--AA extends A
    +--AB extends A
    Wenn es bei dir aber so bleibt, dass nur A, I, AA und AB existieren, dann würde ich das Interface also gleich in A implementieren.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Comment


    • #3
      Okay dann deckt sich das mit meiner bisherigen Überlegung.

      Alle Klassen die von A erben (auch neue) müssen (momentan) zwingend das Interface I implementieren.

      Danke .

      Comment

      Working...
      X