Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在什么情况下,您更喜欢没有方法的抽象类?_Java_Oop - Fatal编程技术网

Java 在什么情况下,您更喜欢没有方法的抽象类?

Java 在什么情况下,您更喜欢没有方法的抽象类?,java,oop,Java,Oop,我正在浏览一些Java代码,我看到了很多抽象类,其中没有任何内容 例如,像这样的事情- public abstract class Processor { } 不过,它们有具体的实现类。在什么情况下这样的抽象类才有意义?其中一种情况是,如果您不希望使用new关键字实例化类,那么您可以将其定义为抽象类 其中一种情况是,如果不希望使用new关键字实例化类,那么可以将其定义为抽象类 在一些库中,他们将使用反射来寻找这些标记抽象类的实现。另外,这是一种通过抽象类名本身为代码编写的文档。在某些库中

我正在浏览一些Java代码,我看到了很多抽象类,其中没有任何内容

例如,像这样的事情-

public abstract class Processor
 {

 }

不过,它们有具体的实现类。在什么情况下这样的抽象类才有意义?

其中一种情况是,如果您不希望使用
new
关键字实例化类,那么您可以将其定义为抽象类

其中一种情况是,如果不希望使用
new
关键字实例化类,那么可以将其定义为抽象类

在一些库中,他们将使用反射来寻找这些标记抽象类的实现。另外,这是一种通过抽象类名本身为代码编写的文档。

在某些库中,他们将使用反射查找这些标记抽象类的实现。另外,这是一种通过抽象类名本身为代码编写的文档。

在我看来,当您想要创建一个行为和状态与所有子类相同的基类时,最好使用抽象类而不是接口。我不确定在什么情况下空的抽象类会比接口更有用。通常,标记接口是空的。

在我看来,当您想要创建一个行为和状态与所有子类相同的基类时,抽象类比接口更可取。我不确定在什么情况下空的抽象类会比接口更有用。通常,标记接口是空的。

Abstract
当您有一些对所有可能的实现类都通用的逻辑时,会使用类


编写一个
抽象类
,内部没有任何内容,不同的类对其进行扩展,这是非常无用的。唯一的
区别
是,您可以对所有具体类使用相同的
句柄。

抽象类是在您拥有一些可能的通用逻辑时使用的实现类


写一个
抽象类
,里面没有任何东西,不同的类扩展它,这是非常无用的。唯一的
区别
是,你可以对所有的具体类使用相同的
句柄。

对于你可以使用的泛型,你可以看看这个线程:@bluesman,它不解释没有方法。对于您可以使用的泛型,您可以查看以下线程:@bluesman,它不解释没有方法。如果它与没有方法的类有什么关系呢?
Processor p=new Processor(){}@悲惨:不确定你的意思?@你给出了声明类的理由
摘要
,不是为了创建一个没有方法的抽象类。@PaulVargas:我认为语法上说你是在用方法实现创建匿名类。如果它与一个没有方法的类有什么关系呢?关于
Processor p=new Processor(){}
@Miseraverable:不确定你的意思是什么?@ThinkStip你给出了一个声明类
abstract
,而不是创建一个没有方法的抽象类的理由。@PaulVargas:我想语法上说你是在创建一个匿名类,带有方法实现。
接口
被用作标记。显然,一个(具体的)类可以有多个标记。
接口
用作标记。很明显,一个(具体的)类可以有不止一个标记?