为什么包含抽象方法的类必须是抽象的?

时间:2014-11-29 13:09:32

标签: java abstract-class abstract

我不明白为什么包含抽象方法的类必须是抽象类。

4 个答案:

答案 0 :(得分:2)

以另一种方式看待它,假设你的类使用抽象方法不必是抽象的,并且你被允许实例化它,如果你调用那个方法,编译器会怎样? - 没有实际的代码可以运行。这就是为什么我们宣布这个类是抽象的 - 我们将它标记为“尚未准备好使用”,然后创建一个具体的'具有零抽象方法的子类,实际上可以使用。

class Horse { // <== note not actually allowed...
   public abstract int getNeighCount();
}

Horse horse = new Horse();
horse.getNeighCount();  // <== what would happen here??

答案 1 :(得分:1)

具体(非抽象)类必须具有其所有方法的实现。因此,未实现的(抽象)方法只能在接口或抽象类中。

答案 2 :(得分:0)

这与任何必须无关。一个至少有一个抽象方法的类是抽象的,即定义。

答案 3 :(得分:0)

默认情况下,即使在您的界面中,所有方法都是抽象的。

抽象方法意味着被该抽象类的子类覆盖,以提供非常具体的实现,并且实际上是一个骨架。

相关问题