zoukankan      html  css  js  c++  java
  • java中的接口回调

    【接口回调】接口回调是多态的另一种体现。接口回调是指:可以把使用某一个接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口中的方法。当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,成为接口回调。不同的类在使用同一接口时,可能具有不同的功能体现。即接口的方法体不必相同,因此接口回调可能产生不同的行为。
    例如: interface People{
    void peopleList();
    }
    class Student implements People{
    public void peopleList(){
    System.out.println("I am a student");
    }
    }
    class Teacher implements People{
    public void peopleList(){
    System.out.println("I am a teacher");
    }
    }
    public class TestMain()
    {
    public static void main(String args[])
    {
    People a; //声明接口变量
    a=new Student(); //实例化 接口变量中存放对象的引用
    a.peopleList(); //接口回调
    a=new Teacher();
    a.peopleList();
    }
    }
    【结果】
    I am a student
    I am a teacher

    Spring中的jdbcTemplate和HibernateTemplate使用的时候就用到了接口回调。

    接口回调和向上转型:
    向上转型: 例如: Shape s=new Circle();
    这里创建了一个circle对象,并把得到的引用立即赋值给Shape,通过继承,circle就是一种Shape.
    假如调用基类方法(它已在之类中被覆盖) s.draw();由于后期绑定(多态),将会正确调用circle.draw()方法。
    java中的跨类引用
    在java里面,关于跨类引用 有两条规则应该记住:
    1.如果a是类A的一个引用,那么 a可以指向类A的一个实例。或者说指向类A的一个子类。这是向上转型的情况。
    2.如果a是接口A的一个引用,那么 a必须指向实现了接口A的一个类的实例,这是接口回调的情形。
    在java中向上转型是自动进行的,但是向下转型却需要强制转换。

  • 相关阅读:
    POJ 1611 : The Suspects (普通并查集)
    深入解析 Dubbo 3.0 服务端暴露全流程
    智能搜索推荐一体化营收增长解决方案
    云上应用系统数据存储架构演进
    EMR on ACK 全新发布,助力企业高效构建大数据平台
    介绍一下闭包和闭包常用场景?
    BFC
    高斯消元学习笔记
    云虚拟主机如何设置域名解析
    Centos7.3安装openJDK
  • 原文地址:https://www.cnblogs.com/fjhh/p/5370856.html
Copyright © 2011-2022 走看看