gpt4 book ai didi

java - 抽象类可以有final方法吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:57:13 28 4
gpt4 key购买 nike

抽象类在 Java 中可以有 final 方法吗?

最佳答案

当然。看看 Template method pattern举个例子。

abstract class Game
{
protected int playersCount;

abstract void initializeGame();

abstract void makePlay(int player);

abstract boolean endOfGame();

abstract void printWinner();

/* A template method : */
final void playOneGame(int playersCount) {
this.playersCount = playersCount;
initializeGame();
int j = 0;
while (!endOfGame()) {
makePlay(j);
j = (j + 1) % playersCount;
}
printWinner();
}
}

扩展 Game 的类仍然需要实现所有抽象方法,但它们无法扩展 playOneGame,因为它被声明为 final。

抽象类也可以有既不是abstract也不是final的方法,只是常规方法。这些方法必须在抽象类中实现,但由实现者决定扩展类是否需要覆盖它们。

关于java - 抽象类可以有final方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1299398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com