为什么会报错,怎么解决?
//测试类 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 星