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();
所有错误显然主要错误是"标识符预期"我不知道如何解决这个问题。 任何帮助将不胜感激。
答案 0 :(得分:0)
您无法编译方法中不存在的任何Java代码。像这样包装这些陈述:
class Control{
void x(){
//(i)
A a1 = new B ();
a1.two();
//...
}
}
答案 1 :(得分:0)
在Control类中,代码是在没有任何方法或代码块的情况下编写的。首先,将代码放在main方法或某些方法中来编译该程序。
关于此错误,"类型不匹配无法从A转换为C" C c1 = new A(); --->我们不能直接将父类的对象放入子类引用中。