kostenloser Webspace werbefrei: lima-city


Unterschied zwischen Abstract und Interface

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g****e

    Heyhoooo

    Was ist der unterschied zwischen Abstract und Interface? Ich ralls irgendwie nicht, das ist doch eigentlich das selbe in grün. Ich arbeite bisher nur mit abstract, mir wurde aber gesagt ich sollte lieber interfaces benutzen, aber kein richtiger Grund genannt. Doch was ist jetzt richtig? Was für welchen Spezialfall? Google gibt hier leider nicht soo den wahren aufschluss, darum frag ich mal hier.

    Liebe Grüße
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

  4. t*****b

    Das Eine hat mit dem Anderen nichts zu tun.

    abstract
    Von einer "abtrakte" Klasse kann man keine Objekte erzeugen, sondern nur Kindklassen:

    abstract class Test {
    ...
    }
    
    var meinObjekt = new Test; // geht nicht.


    Von einer abstrakten Klasse muss also ein Kindklasse erstellt werden:
    abstract class Test {
    ...
    }
    
    class TestKind extends Test {
    ...
    }
    
    var meinObjekt = new TestKind; // funktioniert


    Interface:
    Ein Interface ist ein "Bauplan" einer Klasse. Das Interface beschreibt wie die Klasse auszusehen hat und muss(!) sich danach richten:

    interface Test {
     private function erste_methode();
     private function zweite_methode($test);
    }


    beschreibt zum Beispiel, dass "erste_methode()" und "zweite_methode()" in der Klasse Test existieren muss.

    /Edit:

    Verwendungszweck:

    Ein Interface verwendest du, wenn du Beschreiben willst, wie eine Klasse auszusehen hat. Zum Beispiel als "Richtlinie" für andere Programmierer oder wenn du Probleme ausschließen möchtest oder Funktionen noch nicht implementiert sind.

    Eine abstrakte Klasse verwendest du, wenn du verhindern möchtest, dass von der Elternklasse ein Objekt (Instanz) erstellt werden soll. In der Logik könnte es zB je nach Klassenarchitektur unlogisch sein, damit man das nicht vergisst oder keinen Kram programmiert, verhindert man das einfach.

    Beitrag zuletzt geändert: 24.8.2011 18:35:23 von trueweb
  5. Autor dieses Themas

    g****e

    Achsooo. Ok, das ist super erklärt :)
    Danke, habs verstanden :)

    Liebe Grüße
  6. Oft wirst du übrigens auch beides kombinieren. Also ein Interface *und* eine abstrakte Klasse welche dieses Interface implementiert definieren. Das Interface wirst du dann in deinen Schnittstellen nutzen, während die abstrakte Klasse eine sinnvolle Default-Implementierung abgibt.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!