分别通过成员内部类、方法内部类、匿名内部类完成接口Ball,在测试类BallTest中的调用。

程序参考运行效果图如下:

任务分析:

  1. 创建接口Ball
  • 包含抽象方法play( )
  1. 创建外部类BallTest
  • 定义方法 void playBall(Ball ball),调用接口中的 play( ) 方法
  1. 分别通过成员内部类、方法内部类以及匿名内部类完成接口实现
  • 在BallTest中,创建成员内部类 Inner_m 实现接口Ball,在类中重写 play( ) 方法,输出两条信息,分别为"成员内部类:"和"打篮球"
  • 在BallTest中, 创建成员方法 info() ,在方法中创建方法内部类 Inner_f 实现Ball接口,重写 play( ) 方法,输出三条信息,分别为"**","方法内部类:" 和 "打乒乓球"
  • 在测试类Test中通过匿名内部类实现接口Ball,并重写 play( )方法,输出两条信息,分别为 "**","匿名内部类:" 和 "打排球"
  1. 创建测试类Test,通过创建BallTest类及相关内部类实例,调用相关方法,依次完成相关内部类测试。运行效果参见效果图
package me.feihong.ball;

public interface IBall {
    //创建抽象方法play
    void play();

}
package me.feihong.ball;

public class BallTest {
    // 创建成员内部类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("打乒乓球");
        }
        
    }
    Inner_f inner_f=new Inner_f();
    inner_f.play();
}

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

}
package me.feihong.test;

import me.feihong.ball.BallTest;
import me.feihong.ball.IBall;

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    //成员内部类
    BallTest.Inner_m nbl=new BallTest().new Inner_m();
    nbl.play();
    //方法内部类
    BallTest ffl=new BallTest();
    ffl.info();
    //匿名内部类
    BallTest.playBall(new IBall(){
        @Override
        public void play() {
            System.out.println("*******************");
            System.out.println("匿名内部类");
            System.out.println("打排球");
        }
    });
    
}

}
最后修改:2019 年 12 月 31 日 11 : 39 PM
如果觉得我的文章对你有用,请随意赞赏