【发布时间】:2014-03-27 01:57:25
【问题描述】:
我正在复习我的教科书的一个问题,我有点困惑。代码是:
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 的 print 方法的定义。
b.写出类DClass的方法集的定义。
对于一个,我是否正确地说将以下内容放入子类中将是一个成功的覆盖?
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;
}
非常感谢您的帮助,谢谢!
【问题讨论】:
-
任何时候你想重写一个方法,用
@Override注释它。 -
一个类继承其父类的可访问方法。
-
正确,您不能在子类中直接访问
x,因为它在父类中声明为private。 -
我了解子类继承了其父类的可访问方法。但是我可以在子类的set方法中使用父类的set方法吗?
-
不清楚你在问什么......这几乎就像你没有尝试过......你发布的代码由于访问问题而无法编译.