【发布时间】:2021-07-15 14:31:19
【问题描述】:
给定:考虑以下接口和类:C 类的代码必须满足哪些条件才能成功编译?
public interface I {
public void m1();
public void m2();
}
public class C implements I {
// code for class C
}
这是我的(以前的)答案:
public interface I {
public void m1();
default public void m2 {
System.out.println("default m2");
}
}
public class C implements I {
public void m1()
}
C c = new C();
c.m2();
有什么办法可以改善吗?我是否对原始代码更改了太多?这是我的作业,但我需要反馈。我是接口新手。任何帮助表示赞赏!
编辑:我试过这样做
interface I {
public void m1();
public void m2();
}
public class C implements I {
public static void main(String[] args){
public void m1() {
System.out.println("To be honest..");
}
public void m2() {
System.out.println("It's a vague question to begin with.");
}
}
class Main {
public static void main(String[] args) {
C why = new C();
why.m1();
why.m2();
}
}
输出:
错误:表达式的非法开头 public void m1() {
我不知道为什么会出现这个错误,我只是做了这个网站所做的事情:source,但我的编译器一直坚持让我插入一个public static void main(String[] args){,即使我已经在底部插入了一个public static void main(String[] args){。我得到的唯一错误是public void m1(){上的illegal start of expression
【问题讨论】:
-
嗯,我不确定
C c = new C(); c.m2();在那里做什么?此外,您的缩进不存在,m1方法有错字。 -
但是,您自己测试一下肯定会让您更好地了解它是否可以编译吗?