问题详见问题描述
//接口Ball
public interface Ball {
//创建抽象方法play():void
abstract void play();
}
//创建类BallTest
public class BallTest {
// 创建成员内部类Inner_m,在BallTest中,创建成员内部类 Inner_m 实现接口Ball,在类中重写 play( ) 方法,输出两条信息,分别为"成员内部类:"和"打篮球"
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();
}
}
//测试类
public class Test {
public static void main(String[] args) {
//完成成员内部类内部测试
BallTest.Inner_m one=new BallTest().new Inner_m();
//完成方法内部类测试
BallTest two= new BallTest();
two.info();
//完成匿名内部类测试
BallTest three= new BallTest();
three.playBall(new Ball(){
public void play(){
System.out.println("*********");
System.out.println("匿名内部类:");
System.out.println("打排球");
}
});
}
}问题描述:
BallTest.java:19: error: incompatible types: void cannot be converted to Object return new Inner_f().play(); ^ 1 error
请问老师教学中就是用的Object+return new,为什么我这样写就报错?
尝试过的解决方式:
public void info(){
class Inner_f implements Ball{
public void play(){
System.out.println("**********");
System.out.println("方法内部类:");
System.out.println("打乒乓球");
}
}
new Inner_f().play();
}另外如果我改成这一段后,为什么能正常输出但结果没有成员内部类的内容呢?
运行成功
********** 方法内部类: 打乒乓球 ********* 匿名内部类: 打排球
4
收起
正在回答 回答被采纳积分+1
1回答
java工程师2020版
- 参与学习 人
- 提交作业 9410 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星