正在回答 回答被采纳积分+1
你思路有错,直接调用方法内部类的这个方法就可以撒。下面是我的,你可以参考一下
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | //创建类BallTest public class BallTest { // 创建成员内部类Inner_m public class Inner_m implements Ball{ public void play(){ System.out.println( "成员内部类:" ); System.out.println( "打篮球" ); } } // 创建方法内部类 public void info(){ class Inner_f implements Ball{ public void play(){ System.out.println( "**********************" ); System.out.println( "方法内部类:" ); System.out.println( "打乒乓球" ); } } Inner_f inner_f= new Inner_f(); inner_f.play(); //注意这里我已经对这个类进行了实现 //return new Inner_f().play(); } // 定义一个方法void playBall(Ball ball),调用play()方法 public void playBall(Ball ball){ ball.play(); } } //测试类 public class Test { public static void main(String[] args) { //完成成员内部类内部测试 BallTest ba= new BallTest(); BallTest.Inner_m my=ba. new Inner_m(); my.play(); //完成方法内部类测试 ba.info(); //完成匿名内部类测试 ba.playBall( new Ball(){ public void play(){ System.out.println( "**********************" ); } } ); ba.playBall( new Ball(){ public void play(){ System.out.println( "匿名内部类:" ); System.out.println( "打排球" ); } } ); } } |
public class BallTest{
public void palyIBall(IBall iball){
iball.play();
}
public Inner_m getinner_m(){
return new Inner_m();
}
public class Inner_m implements IBall{
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("成员内部类:");
System.out.println("打篮球");
}
public void info(){
class Inner_f implements IBall{
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("*********************");
System.out.println("方法内部类:");
System.out.println("打乒乓球");
}
}
new Inner_f().play();
}
}
}
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧