Polymorphie

P

Polidoli

Gast
Hi,

hab nen kleines Verständnisproblem zur Polymorphie. Ich hab hier mal nen Pseudeocode gemacht (ist hoffentlich nicht zu lang) wo ich jetzt erwarten würde, dass die addiere() Funktion meiner abgeleiteten Klasse aufgerufen werden müsste. In meinem konkreten Programm wird jedoch immer die Basisklasse aufgerufen, was muss ich machen damit ich mit den Objekten der Basisklasse arbeiten kann, obwohl sich darin Objekt von abgeleiteten klassen befinden?

Java:
class Basis {

     int a;
     int b;
     Basis(int a, int b) {this.a=a;this.b=b;}

     public int addiere() {return a+b;}

}

class Erweitert extends Basis {

     int c;
     
     Erweitert(int a, int b, int c) {
        super(a, b);
        this.c = c;
     }
     public int addiere() {return super.addiere()+c;} //diese soll aufgeufen werden
}

class ContainerKlasse {

     Basis [] array=null;   

      ContainerKlasse(){
         Basis [] array = new Basis[10];
      }

     public void add(Basis b) {...} //Füge basis objekte ins array ein

     public int addiereAlle() {       //Addiere alles auf
           int r=0;
           for each {
              r += array[].addiere(); //eig. sollte hier addiere() von "Erweitert" aufgerufen werden, wirds aber leider nicht
           }
           return r;
     }
}

class MeineMain() {

  public void int main() {
       Erweitert a(1,2,3); 
       Erweitert b(4,5,6);
      
       ContainerKlasse ck = new ContainerKlasse();
       ck.add(a); ck.add(b);
       ck.addiereAlle();
  }
}
 
Zuletzt bearbeitet von einem Moderator:

muemmel_0811

Bekanntes Mitglied
Du kannst nur auf die Methoden der Basis-Klasse zugreifen, weil Du auch nur ein Objekt der Basis-Klasse erstellst. Du musst nur ein Objekt der Erweitert-Klasse erstellen und schon kannst Du auch auf die Methoden dieser Klasse zugreifen, also so:
Java:
class ContainerKlasse {
 
     Erweitert [] array=null;   
 
      ContainerKlasse(){
         Erweitert [] array = new Erweitert[10];
      }

Grüße,
muemmel_0811
 

tfa

Top Contributor
@muemmel: addiere() ist eine Methode der Basisklasse, die in "Erweitert" überschrieben wird. Das müsste so eigentlich funktionieren.
@TS: Mach doch mal ein lauffähiges Beispiel und probiere es aus.
 
S

SlaterB

Gast
in der main-Methode werden doch Erweitert-Objekte erstellt, sofern man das bei diesem bruchstückhaften Code überhaupt sagen kann,
das Array darf ruhig vom Typ Basis sein (@muemmel_0811)

ich habe den Code bei mir lauffähig erweitert, und selbstverständlich wird die Methode von Erweitert ausgeführt,
kein Problem zu erkennen, aber bei so unvollständigen Code sieht es bei dir vielleicht ganz anders aus
 
P

Polidoli

Gast
Danke für die Erläuterung, das mit dem Override war die Lösung. Typo war Schuld.

Thx!
 

Maddi

Mitglied
Java:
Erweitert a(1,2,3); 
Erweitert b(4,5,6);

funktioniert das überhaupt? es wird doch kein Object erzeugt. Fehlt da nicht das new?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
T Beispiel Polymorphie, Tier hund = new Hund(); Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
T Polymorphie und LSP Java Basics - Anfänger-Themen 4
KogoroMori21 Polymorphie-Verständnis Java Basics - Anfänger-Themen 5
C Polymorphie-Problem Java Basics - Anfänger-Themen 3
NeoLexx Zuweisungskompatibilität zwischen Vererbungsbeziehungen (Polymorphie) Java Basics - Anfänger-Themen 18
A Polymorphie Java Basics - Anfänger-Themen 4
O Polymorphie Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
K Polymorphie Java Basics - Anfänger-Themen 6
C Polymorphie Was genau ist Polymorphie und wann genau sollte man es verwenden? Java Basics - Anfänger-Themen 9
C Kurze Frage zur Polymorphie Java Basics - Anfänger-Themen 1
J Polymorphie - Beispielcode Java Basics - Anfänger-Themen 7
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
T Polymorphie Java Basics - Anfänger-Themen 4
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
C Polymorphie Java Basics - Anfänger-Themen 1
L Polymorphie Polymorphie verstehen? Java Basics - Anfänger-Themen 2
H Polymorphie Verständnisproblem Vererbung/Polymorphie Java Basics - Anfänger-Themen 4
N Methoden Polymorphie Java Basics - Anfänger-Themen 11
M OOP Polymorphie/Vererbung Verständnisproblem Java Basics - Anfänger-Themen 2
E Polymorphie Beispiel Polymorphie Java Basics - Anfänger-Themen 2
K Polymorphie und instanceOf Operator Java Basics - Anfänger-Themen 6
S Vererbung Objekte in verwandten Klassen (Kovarianz, Polymorphie) Java Basics - Anfänger-Themen 4
R Polymorphie Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
xehpuk Polymorphie Polymorphie in Parametern Java Basics - Anfänger-Themen 5
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 6
H Kleines Problem mit der Polymorphie Java Basics - Anfänger-Themen 2
A OOP Polymorphie Java Basics - Anfänger-Themen 6
2 Interfaces, Polymorphie und Methoden. Java Basics - Anfänger-Themen 14
C OOP Frage zu Polymorphie Java Basics - Anfänger-Themen 4
P Eine Frage begzl. Interface / Polymorphie Java Basics - Anfänger-Themen 11
Y Kleine Verständnisfrage zum Thema dynamische Polymorphie Java Basics - Anfänger-Themen 3
F Verständnisfrage Objekt instanzierung / Polymorphie Java Basics - Anfänger-Themen 10
T Polymorphie:Überschreiben der Methode klappt nicht Java Basics - Anfänger-Themen 4
T Vererbung und Polymorphie Java Basics - Anfänger-Themen 7
C Unterschied zwischen Polymorphie und Typcasting Java Basics - Anfänger-Themen 10
S Polymorphie Verständnisproblem Java Basics - Anfänger-Themen 4
Z Vererbung oder Polymorphie? Java Basics - Anfänger-Themen 5
J Polymorphie Java Basics - Anfänger-Themen 6
G Polymorphie und Interface Java Basics - Anfänger-Themen 2
S Polymorphie und Vererbung Java Basics - Anfänger-Themen 25
S Polymorphie - oder auch spanisches Dorf? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben