为什么会报错,怎么解决?
//测试类
public class Test {
public void getMotion(Ball b1)
{
b1.play();
}
public static void main(String[] args) {
//完成成员内部类内部测试
BallTest.Inner_m b1=new BallTest().new Inner_m();
b1.play();
//完成方法内部类测试
BallTest lili=new BallTest();
lili.info();
//完成匿名内部类测试
Test t1=new Test();
t1.getMotion(new Ball(){
public void play()
{
System.out.println("***************");
System.out.println("匿名内部类");
System.out.println("打排球");
}
});
}
}这个位置的方法内部类一直报错
//创建类BallTest
public class BallTest{
// 创建成员内部类Inner_m
public class Inner_m implements Ball{
public void play()
{
System.out.println("成员内部类:");
System.out.println("打篮球");
}
}
// 创建方法内部类
public Object info(){
class Inner_f implements Ball{
public void play(){
System.out.println("*****************");
System.out.println("方法内部类:");
System.out.println("打乒乓球:");
}
}
return new Inner_f().play();
}
// 定义一个方法void playBall(Ball ball),调用play()方法
public void playBall(Ball ball)
{
ball.play();
}
}//接口Ball
public interface Ball {
//创建抽象方法play():void
void play();
}0
收起
正在回答
1回答
同学,你好!如下图所示,return返回的是调用内部类的play()方法后的结果,而play()方法的返回值是void,也就是没有返回值,所以会报错。

改正后的代码如下:将info方法前的Object改为void,去掉return

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星