Anzeige:
Ergebnis 1 bis 11 von 11

Thema: JAVA - Dynamische Bindung

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54

    JAVA - Dynamische Bindung

    public class DynBind06{
    public static void main (String args[]){
    Hund h = new Hund();
    Maus m = new Maus();
    laerm(h); <------ Problem
    laerm(m); <------- Problem
    }
    static void laermImHaus(Haustier h){
    System.out.println(h.laerm());
    }
    }

    class Haustier{
    String laerm(){
    return "...";
    }

    class Maus extends Haustier{
    }

    class Hund extens Haustier{
    String laerm(){
    return "WAU WAU";
    }
    }



    nun soll als Ausgabe folgendes rauskommen:


    ...
    WAU WAU


    aber er bringt nur bei Problem: Die MEthode ist undefiniert für den type DynBind06, warum????

    Laut buch soll das aber funzen.

    mfg
    Snoop

  2. #2
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Ich denke das Buch möchte, dass Du die Methode "learmImHaus" aufrufst, und nicht learm, denn die "laerm"-Mehtode gehört ja zu allen Haustier-Objekten und nicht zu der DynBind06-Klasee.

    Das ganze dann also so:

    Code:
     
    public class DynBind06
    {
       public static void main (String args[])
       {
            Hund h = new Hund();
            Maus m = new Maus();
            laermImHaus(h); 
            laermImHaus(m); 
       }
       static void laermImHaus(Haustier h)
       {
            System.out.println(h.laerm());
       }
    }
    HTH

    fs111

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    Nein im Buch steht

    laerm(h);
    laerm(m);

    aber wenn ich laermImHaus(h) schreibe geht das nicht weil dann auch ein fehler auftritt.

    "The method laermImHaus(Haustier) in the type DynBind06 is not applicable for the arguments(Hund)"


    Aber ich glaube schon das dort laerm(h) und laerm(m) stehen muss, aber ein konstruktor fehlt doch nicht oder seh ich das falsch??

    mfg
    Snoop

  4. #4
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    wenn ich schreibe :

    String test1 = h.laerm();
    String test2 = m.laerm();

    System.out.println(test1+" "+test2);

    dann kommt die ausgabe: WAU WAU ...

    Aber was hat das dann noch mit dynamischer Bindung zu tun??? das ist ja dann nur noch einfaches referenzieren.

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.08.2001
    Beiträge
    79
    Zitat Zitat von McSnoop
    aber wenn ich laermImHaus(h) schreibe geht das nicht weil dann auch ein fehler auftritt.

    "The method laermImHaus(Haustier) in the type DynBind06 is not applicable for the arguments(Hund)"
    doch, das geht. Der Fehler muss bei dir im Programmcode liegen.

    MfG Xare

  6. #6
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Zitat Zitat von McSnoop

    "The method laermImHaus(Haustier) in the type DynBind06 is not applicable for the arguments(Hund)"
    Dann ist ein Fehler in Deinem Code. Da ja die Klasse Hund von Haustier erbt, darf er da nicht meckern, da ein-Hund Objekt auch ein Haustier-Objekt ist.

    fs111

  7. #7
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    im Quelltext ganz oben fehlt bei dem 2ten extends das "d" aber das wa rnicht der fehler das hatte ich mich nur hier verschrieben.

    Aber ich bin den quelltext nochmal durchgegangen zeichen für zeichen. Identisch abgeschrieben aus dem buch und wieder bei den beiden Problemstellen:

    "The Method laerm(Hund) is undefined for the type DynBind06"
    "The Method laerm(Maus) is undefined for the type DynBind06"

    ich weis auch nicht warum aber das sourcefile ist eins zu eins übertragen.

    ka warum das nicht will. Das ist das erste Beispiel was nicht funzt aus diesem Buch.

    mfg
    Snoop

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    gut ich habe jetzt auch nochmal das ganze mit laermImHaus(h) und laermImHaus(m) gemacht und es geht. Aber dann ist das ein Fehler im Buch, weil da steht nur laerm(h) und laerm(m). *ggg* nen Bug darf ich ihn behalten. ^^

    naja

    hab mir das nochmal durch den kopf gehen lassen. Das dort nur laermImHaus stehen kann, weil dann ergibt das auch sinn.

    *klick*

    jetzt auch das system verstanden was hintder der dynamischen bindung steht. =)

  9. #9
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Am besten schreib dem Autor, dass er einen Fehler hat, das ist ja für spätere Auflagen nur gut, wenn sowas korrigiert wird.

    fs111

  10. #10
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    54
    hab grad dem author nem Dr. Thomas Kröckertskothen eine Email zukommen lassen. 12 Leutz haben das Buch korrektur gelesen vom Ing. - zum Prof. Dr. alles dabei.

    Naja aber auf 200 seiten 1 Fehler ist schon Respektiv gut.

    Hab das Buch ja schon zur Hälfte jetzt durch und somit zur Hälfte Korrektur gelesen. ^^

    Snoop

  11. #11
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Wäre interessant, ob Du eine Rückmeldung erhälst. Bitte poste das hier dann doch bitte (muss ja nicht die Mail sein, sondern nur sinngemäß).

    fs111

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •