【发布时间】:2018-01-02 10:43:53
【问题描述】:
class A implements Once {
public void one () {
System.out.println("A.1") ;}
public void two () {
one();
System.out.println("A.2") ;}
public void sayItOnce () {
System.out.println("i'll say it once") ;}
}
class B extends A implements Once, Twice {
public void one (int x) {
System.out.println("B.1" + x) ;}
public void two () {
System.out.println("B.2") ;}
public void sayItTwice () {
System.out.println("\"i'll say it Twice") ;}
}
class C extends A {
public void one() {
System.out.println("C.1") ;}
}
interface Once {
public void sayItOnce ();
}
interface Twice {
public void sayItTwice ();
}
`
这是前一年的考试题,如果以下代码出现在使用 A、B 和 C 类的控制程序中,输出会是什么? (i) (ii) - (vi)
class control{
//(i)
A a1 = new B ();
a1.two();
//(ii)
B b1 = new B();
b1.one(4);
b1.one();
//(iii)
Once r = new B();
r.sayItOnce();
//(iv)
Twice b2 = new Twice();
b2.sayItTwice();
//(v)
C c1 = new A();
c1.two()
//(vi)
A a2 = new B();
a2.sayItTwice();
//(vii)
A a3 = new C();
a3.two();}
这就是我们得到的代码我想知道代码是错误的还是我遗漏了什么? 我收到这些错误
“需要标识符”a1.two();
"删除此令牌" b1.one(4);
“需要标识符”b1.one();
"需要标识符" r1.sayItOnce();
“需要标识符”b2.sayItTwice();
"类型不匹配无法从A转换为C" C c1 = new A();
"需要标识符" c.two();
“需要标识符”a2.sayItTwice();
“需要标识符”a3.two();
这就是所有错误,显然主要错误是“预期标识符”我不知道如何解决这个问题。 任何帮助将不胜感激。
【问题讨论】:
-
如果这真的是给你的代码并且问题是“输出是什么”,答案显然是没有输出,因为类控件不是有效的 java 代码。方法调用在类的那个地方是无效的。它根本没有运行任何代码的主要方法。
标签: java inheritance interface extends