我的程序中有一个抽象类。如何在 Java 中使用“super”关键字? [关闭]

Posted

技术标签:

【中文标题】我的程序中有一个抽象类。如何在 Java 中使用“super”关键字? [关闭]【英文标题】:I have an abstract class in my program. how do I go about using the 'super' keyword in Java? [closed] 【发布时间】: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;

【问题讨论】:

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

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

【讨论】:

这是不正确的。事实上,一个普通的类必须从一个抽象类继承,这样一个类才能被实例化。 这是不正确的,如果您不希望类被实例化但您希望其他类 extends 它,则声明 classabstract。假设 'Animal' 是抽象的,如果 DogAnimal 的孩子,您也可以调用 Animal animal=new Dog();。对 Dog 类实例的引用分配给 Animal 引用(例如,Dog 内存地址(0xDEADBEEF)转到 animal 引用)。

以上是关于我的程序中有一个抽象类。如何在 Java 中使用“super”关键字? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在抽象类中执行java方法?

JAVA SE——包继承多态抽象类接口 ( 巨细!总结 )

为啥你不能在 Java 中有一个受保护的抽象类?

PHP能在类中实例化一个类吗

java 定义类 如何写?

Flutter/Dart - Dart中的抽象类 多态 和接口