gpt4 book ai didi

java - 在 java 中使用子类时遇到问题

转载 作者:行者123 更新时间:2023-11-29 03:24:03 29 4
gpt4 key购买 nike

我正在复习教科书的一个问题,我有点困惑。代码是:

public class BClass
{
private int x;

public void set(int a)
{
x=a;
}

public void print()
{
System.out.print(x);
}
}

public class DClass extends BClass
{
private int y;


public void set(int a, int b)
{
//Postcondition: x = a; y = b;
}

问题是:

一个。编写覆盖它的 DClass 的打印方法的定义。

编写类DClass的方法集的定义。

对于 a,我说将以下内容放入子类中会成功覆盖是否正确?

public void print()
{
System.out.print(x + " and " + y);
}

我也遇到了 b 的问题。因为给定了后置条件,所以很明显我应该将子类中的实例变量 y 设置为等于 b。我面临的问题是如何设置 x 等于 a。因为实例变量x属于父类,是不是就不能直接访问了呢?或者我可以这样做:

public void set(int a, int b)
{
x = a;
y = b;
}

非常感谢您的帮助,谢谢!

最佳答案

以下是正确的。 A不正确。我只是想说这就是覆盖的工作原理。我没有看方法的有效性。

应该是

public void print() {
super.print();
System.out.print(" and " + y);
}

对于 B 你需要调用 super 方法 so

public void set(int a, int b) {
super.set(a);
y = b;
}

关于java - 在 java 中使用子类时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004125/

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