【问题标题】:I have an abstract class in my program. how do I go about using the 'super' keyword in Java? [closed]我的程序中有一个抽象类。如何在 Java 中使用“super”关键字? [关闭]
【发布时间】:2022-01-22 13:19:41
【问题描述】:

我正在构建一个项目,我有一个抽象类。而且不知何故我无法从抽象类继承任何代码

enter code here
public class Novel extends Book {
//Class definition
//Constructor
public Novel() {
    super(String bookNum, int ISDN, String name, String publisher, double price);
}
//Operations
@Override
public double getPrice(){
    int price = 300;
    return price;
}

}

【问题讨论】:

  • 您选择不显示此代码是否有某些原因?我们怎么知道你做错了什么?你猜?
  • 你扩展了抽象类吗?如果有,抽象类中的实例变量和方法是私有的吗?

标签: java inheritance keyword


【解决方案1】:

如果一个类被声明为抽象的,它就不能被实例化。 换句话说: 普通类不能继承抽象类。

【讨论】:

  • 这是不正确的。事实上,一个普通的类必须从一个抽象类继承,这样一个类才能被实例化。
  • 这是不正确的,如果您不希望类被实例化但您希望其他类 extends 它,则声明 classabstract。假设 'Animal' 是抽象的,如果 DogAnimal 的孩子,您也可以调用 Animal animal=new Dog();。对 Dog 类实例的引用分配给 Animal 引用(例如,Dog 内存地址(0xDEADBEEF)转到 animal 引用)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2016-07-02
  • 1970-01-01
  • 2011-06-09
  • 2018-05-30
  • 1970-01-01
相关资源
最近更新 更多