6-10编程练习Code,请老师帮忙看看。谢谢。

6-10编程练习Code,请老师帮忙看看。谢谢。

// test. java
// 阶段二 Java多态 6-10 编程练习

package com.lincoln.practice;

public class Test {

    public void getPlay(BallTest bt){
        bt.play();
    }
    
    public static void main(String[] args) {
                //完成成员内部类内部测试
                BallTest.Inner_m myBall = new BallTest().new Inner_m();
                myBall.play();
                //完成方法内部类测试
                BallTest bt = new BallTest();
                System.out.println(bt.info());
                //完成匿名内部类测试
                Test t = new Test();
                t.getPlay(new BallTest(){     
                    @Override
                    public void play(){
                        System.out.println("**********");
                        System.out.println("匿名内部类:");
                        System.out.println("打排球");
                }
                });
        }

}


// ball. java 
package com.lincoln.practice;

//接口Ball
public  interface Ball {
  //创建抽象方法play():void
  public void play();
}

package com.lincoln.practice;

//创建类BallTest
public class BallTest implements Ball {
  // 创建成员内部类Inner_m
  class Inner_m{
      
      public void play(){
          System.out.println("成员内部类:");
  
          System.out.println("打篮球");
      }
  }

  // 创建方法内部类
  public String info(){
      class Inner_f{
          public String play(){
              return "**********\n方法内部类:\n打乒乓球";
          }
      }
      return new Inner_f().play();
  }

      // 定义一个方法void playBall(Ball ball),调用play()方法
      public void playBall(Ball ball){
          //?
      }

    @Override
    public void play() {
        // TODO Auto-generated method stub
        
    }
}

playBall 那个方法不知道是干什么的所以空着来着。

正在回答 回答被采纳积分+1

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

2回答
好帮手慕珊 2018-11-05 10:10:18

你好!除了上面同学说的以外,BallTest类不用实现Ball接口,因此也不用实现play()方法。

在测试类中,实现接口Ball,而不是BallTest

http://img1.sycdn.imooc.com//climg/5bdfa60700015c5306130269.jpg

同样,getPlay方法的参数也要改成Ball

http://img1.sycdn.imooc.com//climg/5bdfa655000113cb04720131.jpg

祝学习愉快!

  • 提问者 Lincolnshan #1
    追问一个问题:playBall这个方法从头到尾都没call过,是干什么用的?
    2018-11-05 12:38:09
  • 好帮手慕珊 回复 提问者 Lincolnshan #2
    如果有多个Ball接口的实现类,可以通过该方法调用play()方法,传入的是哪个实现类的对象,调用的就是哪个实现类的play()方法,这其实是多态的体现,随着学习的深入会看到相关的应用。祝学习愉快!
    2018-11-05 14:16:59
慕粉2379419 2018-11-04 22:39:07
	// 定义一个方法void playBall(Ball ball),调用play()方法
	void PlayBall(Ball ball) {
		ball.play();
	}


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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