助教可以看看有什么累赘的或者可以改进的地方吗
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 星