我不明白为什么包含抽象方法的类必须是抽象类。
答案 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)
默认情况下,即使在您的界面中,所有方法都是抽象的。
抽象方法意味着被该抽象类的子类覆盖,以提供非常具体的实现,并且实际上是一个骨架。