0

javaabstract method和in有什么区别?method overriding因为使用方法覆盖可以找到相同的结果。那么abstract方法的必要性是什么。

4

3 回答 3

2

抽象方法迫使继承该方法的程序员为它定义一个实现,即类说“我需要这个函数的实现,这个类的具体实现必须提供”。

这与重写方法相反,重写方法允许(而不是要求)继承类更改该类对象的方法的实现。

特别是,可覆盖方法(或“虚拟”方法)具有覆盖方法可以调用的基本实现(其本身可以为空)。

于 2013-02-01T05:09:14.667 回答
1

为了使用子类,需要实现抽象方法。您还必须实现非抽象方法,例如,在接口方法签名的情况下。

我认为说您以与实现接口的方法存根相同的方式实现抽象方法是正确的。覆盖与实现不同,因为您可以覆盖不是存根的方法。子类经常覆盖超类既不是接口也不是抽象类的方法。因此,覆盖这个术语比实现具有更广泛的含义。

您可能会发现本教程很有帮助,因为它有一个非常清晰的定义。

http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

希望有帮助!

于 2013-02-01T05:24:07.550 回答
0

两者有不同的用法,无法比较。

抽象类的创建只是为了被其他类子分类。实现类必须实现其中声明的所有抽象方法。然而,方法覆盖superclass是子类从行为“足够接近”的继承对象覆盖方法,然后根据需要修改行为的能力。抽象方法是在没有实现的情况下声明的方法,需要在类中实现。

于 2013-02-01T05:38:34.537 回答