wozu interfaces?



  • hallo,
    wenn ich das richtig verstanden habe, verpflichtet sich eine klasse, die ein interface implementiert hat, dazu, alle methoden aus dem interface zu implementieren..

    was ich nicht verstehe zeige ich anhand eines beispiels:

    public interface anzahl{
       public void anzahl();
    }
    
    public class auto implements anzahl{
       public void anzahl(){
          System.out.println("Anzahl: 3");
       }
    }
    
    public class krad implements anzahl{
       public void anzahl(){
          System.out.println("Anzahl: 5");
       }
    }
    

    wozu wäre so ein interface jetzt gut?! ob ich das interface dahinschreib oder peng.. 😕 .. die methoden muss ich doch eh in den einzelnen klassen definieren.. kann mir vielleicht einer ein beispiel geben, an dem ich den sinn von sowas mal sehen kann?



  • hi,
    sowohl das objekt vom typ auto wie auch das objekt vom typ krad sind auch objekte vom typ anzahl. dadurch kannst du sie in einer gemeinsamen datenstruktur speichern und beispielsweise dort durchiterieren und die anzahl() methode aufrufen.

    gruß
    dj



  • public class InterfaceTest{
    
      public void printAnzRaeder(anzahl x){
        x.anzahl();
      }
    
      public main(String args[]){
        anzahl fahrzeug;
        fahrzeug = new auto();
        printAnzRaeder(fahrzeug);
    
        fahrzeug = new krad();
        printAnzRaeder(fahrzeug);
      }
    }
    


  • faceman schrieb:

    wozu wäre so ein interface jetzt gut?! ob ich das interface dahinschreib oder
    peng.. 😕 .. die methoden muss ich doch eh in den einzelnen klassen
    definieren.. kann mir vielleicht einer ein beispiel geben, an dem ich den sinn
    von sowas mal sehen kann?

    Der Sinn ist recht schnell erklärt: Es gibt ja in Java keine mehrfach
    Vererbungen (wie in C++). Manchmal braucht man es aber, und dann nimmt
    man sich nen Interface.

    So in etwa zumindest 😉



  • Ich glaube er hat im Moment noch grunlegende Probleme mit der Vererbung, Polymorphie, etc. Und versteht deshalb den Sinn nicht. Ich kann mich auch irren.



  • @ths: Etwas blauäugig ist das schon was du sagst auch wenn es hier und da manchmal tatsächlich so verwendet wird.

    Interfaces werden dann genutzt wenn man von verschiedenen Klassen möchte, dass sie jeweils über eine identische Schnittstelle verfügen. Als Beispiel könnte man eine Toolbar einer Entwicklungsumgebung nehmen. Der Toolbar an sich kann es egal sein, was für eine benutzerdefinierte Komponente in sie eingefügt wird - hauptsache sie genügt den sogenannten Mindestanforderungen (identische Instanziierung, Icon zeichnen lassen etc.).


Anmelden zum Antworten