为什么抽象方法只能在抽象类中声明?

我理解在抽象类中,方法既是抽象的,也是不抽象的。但是为什么我不能在“正常”的非抽象类中创建抽象方法呢?

提前感谢您的任何解释!


答案 1

抽象方法基本上说,没有方法的实现,它需要在子类中实现。但是,如果您在非抽象类中有一个抽象方法,则可以实例化该类并获取一个对象,该对象将具有未实现的方法,您将无法调用该对象。


答案 2

具有抽象方法可以防止类被实例化,从而使其成为事实上的抽象类。Java坚持要求你明确声明这个事实以保持一致性:从技术上讲,Java编译器不需要这个额外的标记来根据抽象方法的存在来决定一个类是否是抽象的,但是由于你可能想让一个类抽象而不使其任何方法抽象,所以要求对类进行声明是要走的路。


推荐