当一个类至少有一个抽象方法时,为什么它必须是抽象的?

时间:2015-10-15 21:16:47

标签: java abstract-methods

我无法使用抽象方法创建具体类的原因是什么?

是否强制执行只是为了确保没有抽象方法定义就没有创建对象?还是有另一个合理的理由来限制这个限制?

4 个答案:

答案 0 :(得分:1)

根据定义,abstract类是不完整的。因此,您不应该能够实例化abstract类。这个定义的一个有趣的副作用是你可以创建具有所有具体方法的abstract类。只是你认为你的课程是不完整的,不应该被实例化。

答案 1 :(得分:0)

java constext中的

abstract类定义为该类至少有一个 abstract方法。而抽象方法只是一种未实现的方法。这是一个刚刚从c ++复制的设计决策,它完全相同。唯一的区别是,在c ++中你不需要告诉编译器一个类是抽象的,即使没有你告诉它,编译器也会知道它。为什么这个设计决定是用c ++做的,我不能告诉你,但是让它决定了一整套错误。当该方法未在该子类中实现时,调用类方法的错误。

答案 2 :(得分:0)

你是对的,原因是为了防止创建一个没有实现方法或更多的对象。

答案 3 :(得分:0)

因为当您创建Abstract类时,您处于抽象级别的中间。我的意思是你对课堂责任有一些疑问,或者这个班级必须做些什么,但他们不关心如何,部分。如果您不想要实现的方法,则必须创建一个接口。 在我看来,答案在于阶级责任和抽象,而不在技术范围内。

相关问题