助教可以看看有什么累赘的或者可以改进的地方吗

助教可以看看有什么累赘的或者可以改进的地方吗

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'+"打排球";
			}
		});
	}
	
}


正在回答 回答被采纳积分+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-15 09:52:28
好帮手慕珊 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接口的匿名内部类

祝学习愉快!


  • 提问者 weibo_飞来云去_0 #1
    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.ball; public class BallTest { public void playBall(Ball ball){ ball.play(); } public void mm(Ball1 ball1){ ball1.mm(); } 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(); } }
    2017-10-13 21:35:23
  • 提问者 weibo_飞来云去_0 #2
    我重新回复下,格式乱了
    2017-10-13 21:36:15
  • 你好!重新再问答里面贴一遍代码吧,这个因为没有格式,里面又有注释,不好区分了。而且也没找到主方法。
    2017-10-14 16:14:03
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

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