Java 从具体类派生的抽象类

Java 从具体类派生的抽象类,java,oop,Java,Oop,我刚刚在IDE中得到一个警告,我的类是抽象的,但它是从具体的类派生出来的。然后呢?为什么我不能这样做?这很适合我的需要。不过这只是一个警告,因此该类是可编译的。我只是想知道为什么它会给我这个警告。多谢各位 更新 我需要用一些解释来扩展我的问题。我有一个从其他类派生的类,我希望没有人能够实例化它。此外,我需要这个抽象类中的两个子类,每个子类都有自己的一个抽象方法的实现。这就是为什么 你认为这是个坏主意吗?我应该采取什么方法来代替呢?你可以这样做。这就是为什么你得到的是警告而不是错误 这是一种常见的

我刚刚在IDE中得到一个警告,我的类是
抽象的
,但它是从
具体的
类派生出来的。然后呢?为什么我不能这样做?这很适合我的需要。不过这只是一个警告,因此该类是可编译的。我只是想知道为什么它会给我这个警告。多谢各位

更新

我需要用一些解释来扩展我的问题。我有一个从其他类派生的类,我希望没有人能够实例化它。此外,我需要这个抽象类中的两个子类,每个子类都有自己的一个抽象方法的实现。这就是为什么


你认为这是个坏主意吗?我应该采取什么方法来代替呢?

你可以这样做。这就是为什么你得到的是警告而不是错误


这是一种常见的情况,通常指的是糟糕的系统架构。这就是编译器显示警告的原因。

我认为原因可能是抽象类通常用于创建子类的基本行为/信息。在做出这样的决定时,考虑一下其他程序员。其他人并不期待

无论如何,您可以将编译器首选项设置为不针对此类“问题”发出警告

更新

在阅读了您的更新之后,我认为最简单的方法是声明这个类的
构造函数受保护。

对于抽象方法:我认为,您可以简单地
重写子类中的

Java编译器警告只是对程序员的一种指示,不应该正常执行,否则程序员将来可能会因此产生错误


正如它解释了为什么要担心警告一样

这是一个糟糕的设计,IMO。这似乎要求组合而不是继承。您能提供关于您的用例的更精确的信息吗?你在谈论什么课程?您可能有一个糟糕的设计,或者可能只是使用了错误的工具来完成这项工作-另请参阅qben的答案。不,我不能使用受保护的构造函数,因为子类将位于另一个包中。