助教可以看看有什么累赘的或者可以改进的地方吗
package com.zqy.ball; public interface Ball { public abstract String play(); } package com.zqy.ball; public class BallTest implements Ball{ @Override public String play() { // TODO Auto-generated method stub return null; } public class Inner_m implements Ball{ @Override public String play() { // TODO Auto-generated method stub return "成员内部类:"+'\r'+"打篮球"; } } public Object info(){ class Inner_f implements Ball{ @Override public String play() { // TODO Auto-generated method stub return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球"; } } return new Inner_f().play(); } } package com.zqy.test; import com.zqy.ball.BallTest; public class TestBall { public void getPlay(BallTest balltest){ System.out.println(balltest.play()); } public static void main(String[] args) { // TODO Auto-generated method stub TestBall tb=new TestBall(); BallTest test=new BallTest(); BallTest.Inner_m test1=test.new Inner_m(); System.out.println(test1.play()); System.out.println(test.info()); tb.getPlay(new BallTest() { @Override public String play() { // TODO Auto-generated method stub return "**********"+'\r'+"匿名内部类:"+'\r'+"打排球"; } }); } }
39
收起
正在回答 回答被采纳积分+1
2回答
weibo_飞来云去_0
2017-10-13 21:37:07
package com.zqy.ball; public interface Ball { public abstract void play(); } package com.zqy.ball; public class BallTest { public void playBall(Ball ball){ ball.play(); } public class Inner_m implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("成员内部类:"); System.out.println("打篮球"); //return "成员内部类:"+'\r'+"打篮球"; } } public void info(){ class Inner_f implements Ball{ @Override public void play() { // TODO Auto-generated method stub System.out.println("**********"); System.out.println("方法内部类:"); System.out.println("打乒乓球"); //return "**********"+'\r'+"方法内部类:"+'\r'+"打乒乓球"; } } new Inner_f().play(); } } package com.zqy.test; import com.zqy.ball.Ball; import com.zqy.ball.BallTest; public class TestBall { // public void getPlay(BallTest balltest){ // System.out.println(balltest.play()); // } public static void main(String[] args) { // TODO Auto-generated method stub BallTest test=new BallTest(); BallTest.Inner_m test1=test.new Inner_m(); test1.play(); test.info(); test.playBall(new Ball(){ @Override public void play() { // TODO Auto-generated method stub System.out.println("**********"); System.out.println("匿名内部类:"); System.out.println("打排球"); } }); } }
好帮手慕珊
2017-10-12 10:34:59
代码中还是存在一些问题的,具体如下:
Ball中play方法的返回值改为void,其他实现类也要对应着去改,把相关的方法中的return改为输出语句直接输出
BallTest类中没有定义playBall(Ball ball)方法,方法体中使用ball调用play()方法即可
BallTest类中play()方法的定义去掉
BallTest类中的info()方法改为void类型
TestBall类中,去掉getPlay方法的定义,将主方法中getPlay方法调用改为BallTest中的playBall方法。匿名类的代码不是new BallTest,应该是new Ball,是Ball接口的匿名内部类
祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星