2016-04-12 15 views
0

nur wundern, wenn ich etwas Hilfe bekommen könnte.Calling Subclass-Methode von Super-Klasse

Ich versuche, die folgende Methode aufrufen:

public void updateBrand(Scanner input){ 
    System.out.println("1 - HIGHSTREET\n2 - FRENCHCONNECTION\n3 - TEDBAKER\nSelect type of brand (Enter number)"); 
    int choice = input.nextInt(); 
    switch (choice) { 
    case (1): 
     setBrand(Brand.highstreet); 
     System.out.println("Brand of has been changed to HIGHSTREET"); 
     break; 
    case (2): 
     setBrand(Brand.frenchconnection); 
     System.out.println("Brand of has been changed to FRENCHCONNECTION"); 
     break; 
    case (3): 
     setBrand(Brand.tedbaker); 
     System.out.println("Brand of has been changed to TEDBAKER"); 
     break; 
    default: System.out.println("Invalid input"); 
     break; 
    } 

    } 

von meiner MorningSuit Unterklasse auf ein Verfahren in meinem Anzug Super-Klasse:

public void makeChange(Scanner input){ 
    System.out.println("Are you sure you want to change this suit? (y or n)"); 
    String choice; 
    choice = input.next(); 
    if (choice.toLowerCase() == "y") { 
     updateBrand(input); 
    } 
    else if (choice.toLowerCase() == "n") { 
     System.exit(0); 
    } 
    else { 
     System.out.println("Invalid Input"); 
    } 
} 

Aber erhalte ich einen Fehler, wenn ich versuche, rufe die updateBrand (input) -Methode in meiner Superklasse auf, da sie nicht glaubt, dass sie existiert. Wie würde ich das beheben?

+0

Haben Sie die Fehlermeldung gelesen? – SLaks

+0

Für später: http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – Savior

Antwort

0

Sie können eine Methode in einer Unterklasse nicht von einer Oberklasse aus aufrufen.

Was ist, wenn die Instanz tatsächlich eine andere Unterklasse ist?

Sie sollten beide Methoden in die gleiche Klasse verschieben.

+0

Vielen Dank für Ihr Feedback! –