请问老师练习6-9,我写的合理吗?
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 | package com.imooc.test;public class Test20 { public void getPlay(BallTest ballTest) { ballTest.play(); } public static void main(String[] args) { //完成成员内部类内部测试 BallTest.Inner_m inner_m = new BallTest().new Inner_m(); inner_m.play(); //完成方法内部类测试 BallTest ballTest = new BallTest(); System.out.println(ballTest.info()); //完成匿名内部类测试 Test20 test = new Test20(); test.getPlay(new BallTest() { @Override public void play() { System.out.println("*******\n匿名内部类:\n打排球"); } }); }} |
package com.imooc.test;
public class BallTest implements Ball{
// 创建成员内部类Inner_m
class Inner_m implements Ball{
@Override
public void play() {
System.out.println("成员内部类:");
System.out.println("打篮球");
}
}
// 创建方法内部类
public Object 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) {
Ball.super.play();
}
}package com.imooc.test;
public interface Ball {
//创建抽象方法play():void
default void play() {}
}47
收起
正在回答
2回答
你好!
1、方法内部类的类型改为void,Inner_f实现Ball接口,重写play方法,内部类外面info方法里面通过new Inner_f().play();完成play方法调用。测试类中ballTest.info();完成测试。匿名内部类完成的没有问题,因为BallTest实现了Ball接口。
2、playBall方法是调用接口中的play方法。
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7235 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星