playball方法到底起到了什么作用
BallTest类源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | public class BallTest implements Ball { public class Inner_m{ //begin 构造方法 //无参构造方法 public Inner_m(){ } //end //begin 成员方法 public void play(){ System.out.println( "成员内部类:" ); System.out.println( "打篮球" ); } //end } public void info(){ class Inner_f{ //begin 构造方法 //无参构造方法 public Inner_f(){ } //end //begin 成员方法 public void play(){ System.out.println( "方法内部类:" ); System.out.println( "打乒乓球" ); } //end } new Inner_f().play(); } public void playBall(Ball ball){ ball.play(); } @Override public void play() { // TODO Auto-generated method stub } } |
Test类源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class Test { public static void main(String[] args) { // TODO Auto-generated method stub BallTest.Inner_m one= new BallTest(). new Inner_m(); one.play(); System.out.println( "=======================================" ); new BallTest().info(); System.out.println( "=======================================" ); new BallTest().playBall( new Ball(){ @Override public void play() { // TODO Auto-generated method stub System.out.println( "匿名内部类:" ); System.out.println( "打排球" ); } }); } } |
在这个里面没有看到BallTest类中的playball方法起作用啊?是我的代码有什么问题吗?
37
收起
正在回答
1回答
同学有在Test类中调用BallTest中的palyBall方法,代码也没问题。下图就是同学在测试类中写的关于palyBall方法的代码。
playBall(Ball ball)方法是多态的一个很好的体现,该方法表示打球的意思,具体打什么球,就看方法的参数具体是Ball的哪个实现类的对象。你的测试类中是打排球,如果是其他的Ball的实现类,那么就是打其他球,比如乒乓球篮球等。所以根据传入的对象不同,输出结果也不同,这就是多态的体现。
多调用几次这个方法就能看出来效果了。
如果我的建议解决了你的问题,请采纳,祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧