Java_接口回调与匿名内部类
匿名内部类
警告:匿名内部类本质上是一个对象
如果有一个接口或者抽象类,必须要用class定义一个实现类写重写抽象方法,才能创建对象并使用。
匿名内部类就是省略了用class定义子类的过程,直接使用父类或者接口创建子类对象
1 //动物类
2 public abstract class Animal{
3 public void eat();
4 }
5 //饲养员类
6 public class Feeder{
7 public void feed(Animal a){
8 a.eat();
9 }
10 }
11 //测试类
12 public class Demo4{
13 public static void main(String[] args){
14 //创建饲养员对象
15 Feeder f=new Feeder();
16 //饲养员养一个动物
17 f.feed(new Animal(){
18 public void eat(){
19 System.out.println("狗吃骨头");
20 }
21 });
22 //饲养员养另一个动物
23 f.feed(new Animal(){
24 public void eat(){
25 System.out.println("猫吃鱼");
26 }
27 });
28 }
29 }
接口回调
1
2 //定义技能的接口
3 public interface Skill {
4 public void useSkill(); //释放技能
5 }
6 //英雄类
7 public class Hero {
8 private String name;//英雄的姓名
9 private Skill skill;//英雄的技能
10 //设置技能
11 public void setSkill(Skill skill) {
12 this.skill = skill;
13 }
14 //开始玩
15 public void play(){
16 skill.useSkill(); //这里执行的是具体技能的复写方法
17 }
18 }
19 //测试类
20 public class Demo4 {
21 public static void main(String[] args) {
22 //创建英雄对象
23 Hero hero=new Hero();
24 //给英雄设置技能
25 hero.setSkill(new Skill() {
26 @Override
27 public void useSkill() {
28 System.out.println("拱墙,拱砖...变大...踩鸭子");
29 }
30 });
31 //让英雄使用技能
32 hero.play();
33 }
34 }
下面是代码调用的流程,注意箭头的指向

Java_接口回调与匿名内部类的更多相关文章
- C#委托和事件?策略模式?接口回调?还不清楚的赶紧来看我扯
早前学习委托的时候,写过一点东西,今天带着新的思考和认知,再记点东西.这篇文章扯到设计模式中的策略模式,观察者模式,还有.NET的特性之一--委托.真的,请相信我,我只是在扯淡...... 场景练习 ...
- Java学习之Java接口回调理解
Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...
- 扯一扯 C#委托和事件?策略模式?接口回调?
早前学习委托的时候,写过一点东西,今天带着新的思考和认知,再记点东西.这篇文章扯到设计模式中的策略模式,观察者模式,还有.NET的特性之一--委托.真的,请相信我,我只是在扯淡...... 场景练习 ...
- java 接口回调
学习自:http://blog.csdn.net/xiaanming/article/details/8703708/ http://hellosure.iteye.com/blog/1130176 ...
- Android开发之自定义组件和接口回调
说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...
- Android中的接口回调技术
Android中的接口回调技术有很多应用的场景,最常见的:Activity(人机交互的端口)的UI界面中定义了Button,点击该Button时,执行某个逻辑. 下面参见上述执行的模型,讲述James ...
- Java中接口式的匿名内部类的构造方法
在使用多线程的时候,时常会使用两种方式实现,一种是直接继承Thread类来实现多线程,另外一种就是实现Runnable接口. 我们都知道,接口是没有构造方法的,同时匿名内部类也是没有构造方法的.原因有 ...
- Android接口回调机制
开发中,接口回调是我们经常用到的. 接口回调的意思即,注册之后并不立马执行,而在某个时机触发执行. 举个例子: A有一个问题不会,他去问B,B暂时解决不出来,B说,等我(B)解决了再告诉你(A)此时A ...
- Android系列之Fragment(三)----Fragment和Activity之间的通信(含接口回调)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
随机推荐
- pytest进阶之fixture函数
fixture函数存在意义 与python自带的unitest测试框架中的setup.teardown类似,pytest提供了fixture函数用以在测试执行前和执行后进行必要的准备和清理工作.但是相 ...
- 【linux】驱动-7-平台设备驱动
目录 前言 7. 平台设备驱动 7.1 平台总线 7.1.1 平台总线注册和匹配方式 7.1.2 源码分析 7.2 平台设备 7.2.1 platform_device 7.2.2 设备信息 7.2. ...
- [源码解析] 并行分布式框架 Celery 之 worker 启动 (2)
[源码解析] 并行分布式框架 Celery 之 worker 启动 (2) 目录 [源码解析] 并行分布式框架 Celery 之 worker 启动 (2) 0x00 摘要 0x01 前文回顾 0x2 ...
- 基于Hive进行数仓建设的资源元数据信息统计:Spark篇
在数据仓库建设中,元数据管理是非常重要的环节之一.根据Kimball的数据仓库理论,可以将元数据分为这三类: 技术元数据,如表的存储结构结构.文件的路径 业务元数据,如血缘关系.业务的归属 过程元数据 ...
- 深度学习---1cycle策略:实践中的学习率设定应该是先增再降
深度学习---1cycle策略:实践中的学习率设定应该是先增再降 本文转载自机器之心Pro,以作为该段时间的学习记录 深度模型中的学习率及其相关参数是最重要也是最难控制的超参数,本文将介绍 Lesli ...
- Spring Security OAuth 2.0 发放令牌接口地址自定义
OAuth 2.0 如何获取令牌 以密码模式为例,获取 Token curl --location --request POST 'http://oauth-server/oauth/token' \ ...
- kubernetes node SchedulingDisabled
问题: k8s 集群的节点处于 SchedulingDisabled 解决方案 kubectl patch node NodeName -p "{\"spec\":{\& ...
- 开源Influxdb2高性能客户端
前言 最近我在了解时序数据库Influxdb 2.x版本,体验一翻之后,感觉官方的出品的.net客户端还有很多优化的地方,于是闭关几天,不吃不喝,将老夫多年练就的高性能网络通讯与高性能Buffer操作 ...
- 1068 Find More Coins
Eva loves to collect coins from all over the universe, including some other planets like Mars. One d ...
- 【cypress】5. 测试本地web应用
在之前的cypress介绍里曾提到过,cypress虽然也可以测试部署好的应用,但是它最大的能力还是发挥在测试本地应用上. 本章主要内容就是关于如何测试本地web应用的概述: cypress与后台应用 ...