我很难理解为什么在标有“////1”的行,程序将返回62而不是34。有人能一步一步解释吗?我是java中的beeginer,我正在努力理解执行的顺序。
class X {
public void proc(X p){
System.out.println(12);
}
}
class Y extends X{
public void proc(X p){
System.out.println(62);
}
}
class Z extends Y{
public void proc(Z p){
System.out.println(34);
}
}
class Main4{
public static void main(String[] args){
X x = new Z();
Y y = new Z();
Z z = new Z();
x.proc(z);////1
}
}
任何帮助都会很棒!谢谢!
x.proc(z)
在编译时从X
类型(即X
)中的方法中选择。唯一可用的方法是proc(X)
。
还要记住,Z
中的public void proc(zp)
不会重写public void proc(xp)
。
有什么区别?
下面是一个链表的简单实现。我刚刚添加了相关代码。首先,我向列表中添加一些值,10,990和10000。当我搜索相同的值时,对于key=10,我得到true,但是对于key=990和key=10000得到false,尽管它应该是true。另外,如果我将第二个值从990更改为99,并搜索key=99,这一次我得到的是true。 我不确定是否使用泛型类型。我想我在那里做错了什么。因为如果我用int替换泛
每次我整理这个的时候 这是输出 有人知道为什么吗?
我想在三月计划一个月时间表,而不是使用静态成员。你不需要解释那些评论。“日”和“月时间表”都是类。 在我执行这段代码之前,它有两个错误。一个是“三月[]日”这句话这是一个错误。另一个是'for(int i=0;i 我不明白这些句子错在哪里。语法错误是什么?
下面的程序编译成功。 然而,当我改变模板函数的编写顺序时,它不再编译: 为什么会这样?这两个函数不是在main()中调用之前就已经定义好了吗?为什么它们的书写顺序很重要?
这是我的程序的方法我正在尝试运行我的代码,但它不会运行它说错误:缺少返回语句“}”,我认为这个if/else部分是问题所在,但我无法找出我哪里做错了,以及如何修复它