繁体   English   中英

在Java中扩展抽象类

[英]Extending abstract class in java

是否可以创建一个具有抽象方法的抽象类,该抽象方法为其子类的构造方法?

例如....

abstract class Student {
    abstract void Exam();
}

class Exam extends Student{
    Exam(){
        System.out.println("Total marks=500");
    }
}
class Main {
    public static void main(String args[]){
        Exam ex = new Exam();
    }
}

简单:不。

您会看到,构造函数“看起来”像方法,但事实并非如此。 看到这里对此有一些想法。

签名已经告诉您:抽象方法具有返回类型 ,而构造函数则没有。

如果您的问题是:抽象基类中是否有一种方法可以强制子类提供无参数的默认构造函数? 答案再次是:不,那是不可能的。 在Java中,您不能对子类实施此类约束。

您唯一可以做的就是:

 public abstract class Base {
   public abstract <? extends Base> newInstance();

或类似的东西。 含义:强制子类提供不带参数的方法,该方法返回子类的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM