相关疑难解决方法(0)

如何强制在我的抽象类的所有子类中定义构造函数

我有一个定义抽象方法的抽象类A. 这意味着,对于要实现的类,必须实现所有抽象方法.

我希望我的所有子类都实现一个带有2个int作为参数的构造函数.

声明构造函数会破坏我的目的,因为我想要在子类中定义的构造函数,我对实现一无所知.而且我不能将构造函数声明为抽象;

有没有办法做到这一点 ?

我想要的例子:

让我们说我正在定义Matrix类的API.在我的问题中,Matrix无法改变其尺寸.

要创建Matrix,我需要提供它的大小.

因此,我希望我的所有实现者都为构造函数提供大小作为参数.这个构造函数的动机是问题,而不是实现问题.只要保留了方法的所有语义,实现就可以用它们做任何事情.

假设我想invert()在抽象类中提供该方法的基本实现.此方法将创建具有this反转尺寸的新矩阵.更具体地说,正如它在抽象类中定义的那样,它将this使用带有两个整数的构造函数创建同一类的新实例.由于它不知道实例,它将使用反射(getDefinedConstructor),我想要一种方式来保证我会得到它,并且它将对实现有意义.

java constructor abstract

64
推荐指数
2
解决办法
5万
查看次数

java强制扩展类

在Java中,我可以以某种方式强制扩展抽象类的类来实现其构造函数,并将Object作为参数吗?

就像是

public abstract class Points {

    //add some abstract method to force constructor to have object.
}

public class ExtendPoints extends Points {

    /**
     * I want the abstract class to force this implementation to have
     *  a constructor with an object in it?
     * @param o
     */
    public ExtendPoints(Object o){

    }
}
Run Code Online (Sandbox Code Playgroud)

java constructor abstract-class

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

constructor ×2

java ×2

abstract ×1

abstract-class ×1