Polymorphie

Diskutiere Polymorphie im Java Basics - Anfänger-Themen Bereich.
A

Adriano10

Java:
public class F {
   
    private F f;
   
    F(F f){
        this.f = f;
    }
   
    F(){
       
    }
    public double c(double w) {
        return w;
    }

public class add extends F{
   

    add(F f){
        super(f);
       
    }
    public double c(double w) {
        return super.c(w) + 5;
    }

}
public class mult extends F {
    mult(){
       
    }
   
    mult(F a){
        super(a);
    }
    @Override
    public double c(double w) {
        return super.c(w) * 3;
    }
Beim Testen : wieso bekomme ich immer Ergebniss 10 anstatt 20? Wie so wird erst die Klasse "multi" nicht ausgeführt?
mit jedem Hinweis würde mir sehr geholfen....
Vielen Dank für die große Hilfe im Voraus:..

Java:
F f = new add(new multi);

System.err.println(f.c(5))
 
Zuletzt bearbeitet von einem Moderator:
H

httpdigest

Nutze bitte [code=java]...Java Code...[/code] Tags und schreibe den tatsächlich von dir verwendeten Code, denn dieser Code hier:
Java:
F f = new add(new multi);
ist sicherlich nicht das, was bei dir tatsächlich steht.
 
A

Adriano10

Code:
public class F {
    
    private F f;
    
    F(F f){
        this.f = f;
    }
    
    F(){
        
    }
    public double c(double w) {
        return f == null ? w : f.c(w);
    }

    public F getF() {
        return f;
    }

    public void setF(F f) {
        this.f = f;
    }
}

//ADD Class

public class add extends F{
    

    add(F f){
        super(f);
        
    }
    public double c(double w) {
        return super.c(w) + 7;
    }
}

//Class mult
public class mult extends F{
    
    mult(){
        
    }
    
    mult(F a){
        super(a);
    }
    @Override
    public double c(double x) {
        return super.c(x) * 3;
    }

}

//Test

public class Test {
    
    public static void main(String[] args) {
        
    
    F f = new add(new mult());
    
    System.out.println(f.c(5));
    
    
    }
}

Ergebniss ist immer noch 10
 
A

Adriano10

Wenn ich den von dir geposteten Code so 1:1 nehme und ausführe, kommt nicht 10 sondern 22 heraus.
Poste doch bitte mal den Code, den du auch tatsächlich ausführst. Hast du vielleicht vergessen, in der IDE auf "Speichern" zu drücken?

Danke trozdem, jetzt klappt es auch bei mir.
 
Thema: 

Polymorphie

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben