请问老师练习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 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星