gpt4 book ai didi

java - 如果子类在重写方法中强化了先决条件,那么在程序中会发生什么情况?

转载 作者:行者123 更新时间:2023-12-02 02:06:35 25 4
gpt4 key购买 nike

我对这个问题感到困惑。我很高兴知道哪个是正确答案以及为什么?

里氏替换原则规定,允许削弱重写方法中的先决条件。如果子类在重写方法中加强了先决条件,那么在程序中会发生什么?

  1. 调用重写方法后的代码可能会中断,因为它对返回值做出了假设来自重写方法的值。
  2. 由于代码假设的先决条件较弱,因此可能无法调用重写方法。
  3. 什么都不会发生 - 代码将始终像以前一样正确运行。
  4. 如果代码是用 Java 编写的,则可能无法编译。

感谢您的建议!

最佳答案

我会选择:

  1. 为 true,因为影响参数的前提条件会影响返回值。以一个只能取正数的数学函数为例,它会给出与其他数字意想不到的结果。
  2. 为 false,如果该方法被重写,它将采用相同的参数类型并具有相同的返回类型并且可以被调用。
  3. 不一定为真,因此因 1 而为假。
  4. 由于同样的原因 2. 也是错误的。

关于java - 如果子类在重写方法中强化了先决条件,那么在程序中会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50678747/

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