InterA interA=new InterA() { @Override public Car show() { return Car(); } }
时间: 2024-02-10 12:05:46 浏览: 47
这段代码中的问题是 `return Car();`,`Car()` 是一个类名,不能直接调用,应该使用 `new` 关键字创建一个 `Car` 的实例,如 `return new Car();`。修改后的代码如下:
```
InterA interA = new InterA() {
@Override
public Car show() {
return new Car();
}
};
```
这里使用了匿名内部类实现了 `InterA` 接口,并重写了 `show()` 方法,返回一个新的 `Car` 实例。
相关问题
blic class Test { public static void main(String[] args) { } } //定义接口 interface InterA { void showA(); } class A { public void methodA(InterA a) { a.showA(); }
这是一个 Java 代码的模板,其中定义了一个 Test 类和一个 InterA 接口,以及一个 A 类,A 类中有一个 methodA() 方法,该方法接收一个 InterA 类型的参数,并调用它的 showA() 方法。
在 Test 类的 main() 方法中,可以实例化 A 类的对象,并调用它的 methodA() 方法,将一个实现了 InterA 接口的类的实例作为参数传入,从而执行该实例的 showA() 方法。
需要注意的是,InterA 接口中只定义了一个抽象方法 showA(),实现了该接口的类需要实现该方法。而 A 类中的 methodA() 方法是一个非抽象方法,可以直接调用该参数的 showA() 方法。
需求: 在测试类Test中创建A的对象a并调用成员方法methodA(),要求用两种方式实现 自己书写,不要用idea自动生成。 public class Test { public static void main(String[] args) { } } //定义接口 interface InterA { void showA(); } class A { public void methodA(InterA a) { a.showA(); } }
好的,可以这样实现:
```
public class Test {
public static void main(String[] args) {
// 方法一:使用匿名内部类
A a1 = new A();
a1.methodA(new InterA() {
@Override
public void showA() {
System.out.println("方法一:使用匿名内部类实现接口InterA");
}
});
// 方法二:定义一个实现了InterA接口的类,并创建对象调用
class MyInterA implements InterA {
@Override
public void showA() {
System.out.println("方法二:定义实现了接口InterA的类MyInterA");
}
}
A a2 = new A();
a2.methodA(new MyInterA());
}
}
// 定义接口
interface InterA {
void showA();
}
// 定义类A
class A {
public void methodA(InterA a) {
a.showA();
}
}
```
阅读全文