抽象方法不要抽象类

时间:2019-03-16 18:34:02

标签: java eclipse abstraction

不知何故,使用摘要时,以下代码出现JNI错误。 这不应该发生,因为我认为我写的正确。 可以请人看看。

package Abstraction;

public class Abstraction1_After {
    public static void main(String[] args) {
        Iphone obj = new Iphone();
        Samsung obj1 = new Samsung();
        showPrice(obj);
    }


    public static void showPrice(Phone obj) {
        obj.showPrice();
    }
}

abstract class Phone {
    public abstract void showPrice();
}


class Iphone extends Phone {
    public void IphonePrice() {
        System.out.println("Price of Iphone Xr is 500€");
    }
}


class Samsung extends Phone {
    public void Samsungs9Price() {
        System.out.println("Price of Samsung S9 is 600€");
    }
}

1 个答案:

答案 0 :(得分:1)

您的Iphone类继承了Phone类的抽象方法showPrice()。您必须重写它,因为非抽象类不能具有抽象方法

您可能想要这样的东西:

class Iphone extends Phone {
    public void showPrice() {   
        System.out.println("Price of Iphone Xr is 500€");
    }
}

如果要覆盖方法,则必须通过给新方法使用相同的名称来让编译器知道。因此,只需将方法名称更改为与父方法相同,就可以了。

Samsung课程当然也是如此

相关问题