#第29节 接口与多态(下)接口回调
##Java接口回调
接口回调是指可以把 实现某一接口的类创建的对象的引用 赋给 该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。

示例:创建接口test
Test.java

public interface Test {int getSum(int x);
}

Tom 实现这个接口,重写相应的方法 Tom .java

public class Tom implements Test{@Overridepublic int getSum(int x) {int sum = 0;for(int i=1;i<=x;i++){sum = sum+i;}return sum;}
}

主类Demo27

public class Demo27 {public static void main(String[] args) {Test test;     //声明一个接口的变量Tom tom = new Tom();test = tom;System.out.println("test的计算结果:"+test.getSum(20));}
}

运行结果

##接口的多态性

把实现接口的类的实例的引用赋值给接口变量后,该接口变量就可以回调类重写的接口方法。

由接口产生的多态就是指不同的类在实现同一个接口时可能具有不同的实现方式,那么接口变量在回调接口方法时就可能具有多种形态。

示例:创建一个Bob实现这个接口Bob.java

public class Bob implements Test{@Overridepublic int getSum(int x) {return 12+x;}
}

主类中如何来写它呢?Demo27.java

public class Demo27 {public static void main(String[] args) {Test test;Tom tom = new Tom();test = tom;System.out.println("test的计算结果:"+test.getSum(20));test = new Bob();   //合三为一System.out.println("test的计算结果:"+test.getSum(20));}
}

和上转型对象实现的多态是非常相似的,这里只是用到了抽象的最高境界接口还实现,显得更加的纯粹,简单

##Abstract类和接口类的比较

接口和abstract类的比较如下:
1.abstract类和接口都可以有abstract方法。
2.接口中只可以有常量,不能有变量;而abstract类中即可以有常量也可以有变量。
3.abstract类中也可以有非abstract方法,接口不可以。

##面向接口编程

面向接口去设计程序,可以通过在接口中声明若干个abstract方法,表明这些方法的重要性,方法体的内容细节由实现接口的类去完成。

使用接口进行程序设计的核心思想是使用接口回调,即接口变量存放实现该接口的类的对象的引用,从而接口变量就可以回调类实现的接口方法。

第29节 接口与多态(下)接口回调相关推荐

  1. Golang——接口、多态、接口继承与转换、空接口、类型断言

    接口是一种规范与标准,只是规定了要做哪些事情.但是具体怎么做,是实现接口的类去做的,接口只是把所有具有共性的方法定义在一起. 接口存在的意义就是用来定义规范,用来做功能的拓展 接口最大的好处是可以实现 ...

  2. 【Java挠头】继承、抽象、接口、多态、向上转型、向下转型等精妙干货

    –本文摘要–     1.本文的目标读者:是了解Java基础,且对面向对象概念有所了解,但是对Java中继承.抽象类.接口.多态等等概念搞不清的初学者.     2.本文的内容摘要:讲述Java中的一 ...

  3. 第 27、28、29 节 接口、抽象类、SOLID、单元测试、反射

    第27.28.29节 接口.抽象类.SOLID.单元测试.反射 什么是接口和抽象类 SOLID 接口 依赖反转原则和单元测试 什么是接口和抽象类 1)接口和抽象类都是"软件工程产物" ...

  4. java接口和多态应用例题_Java基础进阶 第四天 抽象接口多态

    今日任务: 1,能够独立使用抽象类 2,能够独立使用多态 3,能够独立使用接口 4,能够理解适配器设计模式 1. 抽象类 1.1. 抽象类的产生 需求:创建类描述猫和狗的行为: 猫的行为:抓老鼠:吃鱼 ...

  5. 【java基础】第11天——接口、多态

    今日内容介绍 1.接口 2.多态 01(面向对象)接口概述.avi 02(面向对象)接口抽象方法定义.avi 03(面向对象)接口的实现类.avi 04(面向对象)接口中的成员变量的特点.avi 05 ...

  6. [ASP.NET入门随想七]主角与配角——OO思想的多态、接口与委托

    [ASP.NET入门随想七]主角与配角 --OO思想的多态.接口与委托 曾几何时,我们的父辈接受到的对美好生活的描绘是:"楼上楼下.电灯电话",三十年过去了,电灯电话早已已成为我们 ...

  7. JavaSE(四)——方法重写、多态、接口

    文章目录 1. 方法重写 1.1 定义 1.2 重写的注意事项 1.3 实例 2. final关键字 2.1 定义 2.2 修饰特点 3. 多态 3.1 定义 3.2 多态前提 3.3 成员访问特点 ...

  8. 【Java4】实例初始化,类初始化,/接口,多态,final/static,权限修饰符/native

    文章目录 1.实例初始化过程:有几个构造器,就会有几个实例初始化方法 2.实例初始化和类初始化结合:先类(静态)后实 3.接口:只有abstract可省 3.1 鸟类案例:Flyable相当于父类的一 ...

  9. Java常见面试知识点:继承、接口、多态、代码块

    问题:Java常见面试知识点:继承.接口.多态.代码块 答案: 1.继承 继承中构造方法的访问特点 子类中所有的构造方法默认都会访问父类中无参的构造方法 为什么? • 子类在初始化的时候,有可能会使用 ...

最新文章

  1. CSS中的一些常见标签
  2. MyEclipse连接MySQL时遇到的各种烦人事
  3. 超图桌面版根据现有数据源制作一幅地图简单操作
  4. php 文档转html格式文件,php学习笔记之将word文档转化为HTML文件
  5. 利剑无意之面试题(二)
  6. ASP.NET MVC 上传大文件时404
  7. Camel 2.11 –没有Spring的Camel Web应用程序
  8. github代码_GitHub启动代码空间
  9. Http协议之报文·方法·状态码
  10. C#通过COM组件操作IE浏览器(三):了解IHTMLDocument2
  11. 做网店大家千万要注意
  12. 10大国外IT网站(转)
  13. gear操作系统 基于web的linux开放平台,支持Linux操作系统 开源飞机模拟器FlightGear...
  14. ACM:《挑战程序设计竞赛》
  15. IP 点分十进制表示法
  16. javascript封装滑块
  17. mysql表数据量超过百万条了,count很慢。。
  18. 常见的WebShell管理工具
  19. 【第三章】MCS-51指令系统
  20. WinPcap编程之HTTP协议还原

热门文章

  1. HTML和CSS知识点总结(包括H5和C3)
  2. 以未来式计算机为题目的作文,以器为题的作文800字
  3. AutoML 详解及其在推荐系统中的应用、优缺点
  4. 聊一聊作为高并发系统基石之一的缓存,会用很简单,用好才是技术活
  5. 学java还是python哪个就业好_JAVA和Python哪个好就业?
  6. 福禄克Fluke DSX2-8000 CH 和DSX2-5000 CH测试适配器兼容性对比图
  7. Java运行jar包时,指定内存大小
  8. chrome 验证码识别 扩展_验证码实在太过反人类?自动跳过验证码的神器-验证码,登录,安全 ——快科技(驱动之家旗下媒体)-...
  9. TemplateInputException: Error resolving template 无法解析页面原因记录
  10. CentOS8中安装SQL Server 2019 for Docker和sqlcmd工具