playball方法到底起到了什么作用

playball方法到底起到了什么作用

BallTest类源码:

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类源码:

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方法起作用啊?是我的代码有什么问题吗?

正在回答

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

1回答

同学有在Test类中调用BallTest中的palyBall方法,代码也没问题。下图就是同学在测试类中写的关于palyBall方法的代码。

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

playBall(Ball ball)方法是多态的一个很好的体现,该方法表示打球的意思,具体打什么球,就看方法的参数具体是Ball的哪个实现类的对象。你的测试类中是打排球,如果是其他的Ball的实现类,那么就是打其他球,比如乒乓球篮球等。所以根据传入的对象不同,输出结果也不同,这就是多态的体现。

多调用几次这个方法就能看出来效果了。

如果我的建议解决了你的问题,请采纳,祝学习愉快!


  • 风中随影 提问者 #1
    那也就是说如果我在调用playball方法的时候是这么调用的话,new BallTest().playBall(new BallTest().new Inner_m()),这样子到时候输出的就是成员内部类,打篮球?但是这样子的话编译报错啊
    2018-04-14 09:33:56
  • 慕布斯37364 回复 提问者 风中随影 #2
    Inner_m()这个类是BallTest()类中的成员内部类,但是并没有实现Ball接口,不属于Ball接口的实现类,所以把Inner_m()类的实例传入playBall(Ball ball)方法参数类型是错误的,造成编译报错。
    2018-04-15 21:48:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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