接口回调的原理:接口变量 调用 被类实现的接口的方法
来源:互联网 发布:今天怎么登录不上淘宝 编辑:程序博客网 时间:2024/06/12 01:15
其目地都是抽象。通过访问父类或接口的方法(公共)达到一种对具体实现的封装。对于接口的使用者来说,不需要关心实现细节。提高内聚,降低不必要的耦合。接口回调是指:可以把使用实现了某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。看下面示例。
interface People {
}
class Student implements People {
}
class Teacher implements People {
}
publicclass Example {
}
结果:
I’m a student.
I’m a teacher.
publicstaticvoid main(String[] argts){ A a1= new A(); A a2= new B();//Upcasting向上转型 B b1= new B(); B b2=(B) new A();//DownCasting向下转型,[注意]:此处(B)进行了强制转换! }
结果:
I’m a student.
I’m a teacher.
再来看看向上转型(upcasting)的概念。
2.什么是向上转型[1]?
Shape s=new Circle();
这里,创建了一个Circle对象,并把得到的引用立即赋值给Shape。通过继承,Circle就是一种Shape。
假设你调用基类方法(它已在导出类中被覆盖):
s.draw();
由于后期绑定(多态),将会正确调用Circle.draw()方法。
3.Java中的跨类引用
在java里面,关于跨类引用,有两条规则应该记住:
1)如果a是类A的一个引用,那么,a可以指向类A的一个实例。或者说指向类A的一个子类,这是向上转型的情形。
2)如果a是接口A的一个引用,那么,a必须指向实现了接口A的一个类的实例。这是接口回调的情形。
在java里面,向上转型是自动进行的,但是向下转型却不是,需要我们自己定义强制进行.
class B extends A{}
publicclass A {
}
4.向上转型与接口回调的区别
从实现了某接口的对象,得到对此接口的引用,与向上转型为这个对象的基类,实质上效果是一样的。这些对象都可以调用基类型提供的方法,对于接口来说就是回调接口中的方法,对于父类来说就是调用父类的方法。当然在向上转型的情况下,还牵涉到子类重写(Override)父类方法的情形。
0 0
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- 接口、实现类和方法的调用
- 接口实现类方法的回调
- java接口类型变量能调用已经被实现的这个接口的方法吗
- 远程调用webservice接口的实现方法
- 实现接口的实现类,实现类方法调用
- 接口的方法与变量
- Java的变量、方法、类及接口
- IDispatch 接口方法的调用
- 调用WebService接口的方法
- C#接口-接口的实现
- 实现接口的第二方法
- 接口回调的实现
- java 的类和接口的变量调用
- 类、接口继承以及接口的实现
- 通过Feign调用的方法实现接口之间的传递
- linux获取终端大小
- ubuntu14.04编译安装QT5.4
- Actor模型和Akka消息驱动系统
- GNU C/C++ __attributes__
- 设置参数值增量+1的简单函数
- 接口回调的原理:接口变量 调用 被类实现的接口的方法
- Java中自定义Stack的Demo
- Android之App Manifest
- svn服务器搭建和eclipce svn插件 注意事项
- CSS模式之三权分立
- 更换启动图片后的广告图片
- 九章算法面试题16 01随机生成函数
- 关于语音录制的代码,很经典!
- 抽象工厂模式