gpt4 book ai didi

java - 抽象派生类中的抽象方法覆盖/实现抽象基类的抽象或具体方法。如何以及为什么?

转载 作者:行者123 更新时间:2023-12-05 07:43:27 25 4
gpt4 key购买 nike

遇到有趣的继承/覆盖问题(取自 here )。

当基类和派生类都是抽象类时,并且

  1. 两者具有完全相同的抽象方法,或者
  2. abstract Base有具体方法,Derived声明SAME方法抽象。

不明白为什么Eclipse IDE会在Derived中调用它

  1. 实现(它在 Derived 中没有代码/主体!)
  2. 覆盖(在 Derived 中也没有代码/主体!)

片段 1:

public abstract class Girl {
abstract String getDescription();
}


abstract class GirlDecorator extends Girl {
abstract String getDescription(); // implements Girl.getDescription() - says Eclipse IDE
}

片段 2:

public abstract class Girl {
String description = "no particular";

String getDescription() {
return description;
}
}

abstract class GirlDecorator extends Girl {
abstract String getDescription(); // overrides Girl.getDescription() - says Eclipse IDE
}

最佳答案

在Java中有两种类型的方法(非静态的)

  1. Virtual - 普通方法,必须在基类中实现,但可以通过继承覆盖。

  2. 抽象 - 未在基类中实现但在派生类中实现的方法。

如此一来,虚方法不在派生类中实现,它们在基类中实现,并且可以被派生类覆盖。抽象方法不在基类中实现,它们在派生类中实现。

关于java - 抽象派生类中的抽象方法覆盖/实现抽象基类的抽象或具体方法。如何以及为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43680878/

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