老师们请指导一下,卡在这儿了

老师们请指导一下,卡在这儿了

public Object info() {

class Inner_f implements Ball{

@Override

public void play() {

System.out.println("**********");

System.out.println("方法内部类:");

System.out.println("打乒乓球");


}

}

return new Inner_f().play();

}

PlayBall(new Ball(){


@Override

public void play() {

System.out.println( "**********");

System.out.println("匿名内部类:");

System.out.println("打排球");

}


});

http://img1.sycdn.imooc.com/climg//591e8c0b0001201d07000552.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

 您好,匿名内部类应写在Test类中,可以参考下面的代码:

BallTest bt = new BallTest();
      bt.info();
    bt.PlayBall(new Ball(){
        @Override
        public void play() {
             System.out.println("*********");
                System.out.println("匿名内部类:");
                System.out.println("打排球");
             
        }    
    });
祝学习愉快~ 


慕粉无名而来 2017-08-22 22:12:29

匿名内部类写在test中

对象名.playBall(new Ball(){

public void play(){

System.out.println("**************");

System.out.println("匿名内部类:"+"\n打排球");

}

});


珍珠奶茶 2017-05-19 15:20:21

针对你提供的代码,下面的代码是修改过的,具体看注释部分

public void info(){//Object info() {改过
class Inner_f implements Ball {
@Override
public void play() {
System.out.println("**********");
System.out.println("方法内部类:");
System.out.println("打乒乓球");
}
}
//play()方法无返回值,这么调用肯定不对,把info()方法前的Object改为void
//return new Inner_f().play();info和play方法都只是输出信息,不需要返回值。
//如果想使用返回值的话,info和play方法的返回值一致就可以了
new Inner_f().play();
}
//palyBall是个方法,所以前面要有返回值
//PlayBall(new Ball(){错误的
    public void playBall(Ball ball){
    ball.play();//按题目要求,此处只需要直接调用play()方法
    }

另外,下面是题目需求3,你只完成了中间的需求,其他两个未完成

3.    分别通过成员内部类、方法内部类以及匿名内部类完成接口实现

1)在BallTest中,创建成员内部类 Inner_m 实现接口Ball,在类中重写 play( ) 方法,输出两条信息,分别为"成员内部类:"和"打篮球"

2)在BallTest中, 创建成员方法 info() ,在方法中创建方法内部类 Inner_f 实现Ball接口,重写 play( ) 方法,输出三条信息,分别为"**********","方法内部类:" 和 "打乒乓球"

3)在测试类Test中通过匿名内部类实现接口Ball,并重写 play( )方法,输出两条信息,分别为 "**********","匿名内部类:" 和 "打排球"


希望下次能贴完整的代码,这样的话方便为你调试,我现在只能是把你的代码放到一个新建的类中,这样和你的问题可能会存在误差。

祝学习愉快!

  • 提问者 慕姐8987590 #1
    我写那个PlayBall(new Ball(){ @Override public void play() { System.out.println( "**********"); System.out.println("匿名内部类:"); System.out.println("打排球"); } }); 是我写的匿名内部类。。。。我不是很熟悉匿名内部类怎么编写,望指导
    2017-05-19 15:34:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师