首页 > 其他分享 >接口实现多态,本质上是接口方法实现的多态

接口实现多态,本质上是接口方法实现的多态

时间:2023-12-10 18:35:51浏览次数:30  
标签:Fly name 实现 void 多态 接口 ClassA

比如接口:

interface Fly {

  void name();

  void kkk();

}

 

Fly f = subObj;

// 其实多态发生在这里,f会找到其真实类型,即subObj的真实类型

// 然后去找真实类型里是否实现了void name()这个方法,没有找到则再找subObject类型的父类型或接口,这样一层层的去找

// 在java里是会从ClassA -> Fly这个链路去找void name()的实现,找不到是异常(当然编译时或类型转换时就已经拦截了不匹配的类型)

// 但是在比cj这种有扩展机制的语言里,它找的链路可能是ClassA -> 到ClassA所有的祖宗类和所有接口默认实现  存在该void name()方法的实现 则调用该方法

// ,那怕这个void name()找到的实现可能是在ClassA implements的另一个接口的默认实现(这个找到的接口和Fly没有任何关系;因为Fly接口是通过扩展到ClassA里的)

f.name();

标签:Fly,name,实现,void,多态,接口,ClassA
From: https://www.cnblogs.com/silentdoer/p/17893023.html

相关文章

  • 算法之快速排序5非递归实现
    一:概述绝大多数的递归逻辑都可以利用栈的方式去代替。代码中一层一层的方法调用,本身就是使用一个方法调用栈。每次进入一个新的方法,就相当于入栈。每次有方法返回就相当于出栈。所以,可以把原本的递归实现转换成一个栈的实现,在栈中存储每一次方法调用的参数。二:具体代码实现/*非......
  • mp实现一个自连接查询
    起因是我设置了一个考核表结构,其中包含指标值,指标当前值,是主副指标等列。后面我要进行考核的验收的时候,我发现验收要取得的是主当前指标值/主指标值以及副指标当前值/副指标值。如果想要让这两条数据一次都被查到,那么就需要进行自连接查询(查询同一个表两次,但是有些需要的输出内容......
  • SV 接口
    概述接口mainbus有很多信号线verilog会先将模块的输出信号拉出来,然后再将其连接到其他模块,进行不同模块之间的连接比较麻烦且容易出错interface-将端口封装到接口中接口的内容interface和module用法类似interface......endinterfaceinterface可以例化接口,但是......
  • PHP中cookie,session的使用和用户自动登录的实现
    cookie的使用//生成cookie//注释:setcookie()函数必须位于<html>标签之前。//setcookie(name,value,expire,path,domain);//名称,值,过期时间,有效路径,有效域名//path,可选;如果路径设置为"/",那么cookie将在整个域名内有效.如果路径设置为"/test/",那么cookie将在test......
  • Java实现对Hadoop HDFS的API操作
    1.配置Hadoop的Windows客户端Hadoop配置Windows客户端2.新建Maven项目[略]3.添加依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId>......
  • vue3中自定义ref实现防抖
    import{customRef}from"vue";/***@description自定义ref实现防抖*@param{String}value*@param{Number}delay*@returns*/exportconstdebounceRef=(value,delay)=>{lettimer;returncustomRef((track,trigger)=>({......
  • 实现excle文件的导入和导出
    @RequestMapping("/export")publicvoidexport(HttpServletResponseresponse){try{List<User>list=userMapper.findAll();ExcelWriterexcelWriter=ExcelUtil.getWriter(true);excelWriter.write......
  • Home-图片懒加载指令实现
    场景和指令用法场景:某些网站首页通常会很长,用户不一定能访问到页面靠下面的图片,这类图片通过懒加载优化手段可以做到,只有进入视口区域才发送图片请求指令用法:<imgv-img-lazy="item.picture"/>在图片img身上绑定指令,该图片只有正式进入到视口区域时才会发送图片网络请求实现......
  • VUE框架CLI组件化全局事件总线实现原理------VUE框架
    <template> <div> <!--内置函数的实现步骤--> <!--提供事件源,给事件源绑定事件,编写回调函数,将回调函数和事件进行绑定--> <!--等待事件的触发,事件触发执行回调函数--> <!--组件的自定义事件实现步骤--> <button@click="Hello()">你好</button> <!--给Us......
  • wordpress整合 Prism.js实现代码高亮 切图网自用
    Prism.js是一个简约漂亮的代码高亮插件,就冲简单好用就值得一用,如何把它整合到wordpress,附代码,也是切图网自己再用的。代码添加到主题的functions.php中//自定义代码高亮按钮functionappthemes_add_quicktags(){if(wp_script_is('quicktags')){?><s......