从超类调用子类方法

时间:2016-04-12 22:10:59

标签: java subclass super

只是想知道我是否能得到一些帮助。

我想调用以下方法:

 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;
    }

   }

从我的MorningSuit子类到我的Suit Super类中的方法:

    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");
    }
}

但是当我尝试在我的超类中调用updateBrand(input)方法时,我收到一个错误,因为它不认为它存在。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您不能从超类中调用子类中的方法。

毕竟,如果实例实际上是一个不同的子类怎么办?

您应该将这两种方法都移到同一个类中。