Java的函数的奇怪重载是什么
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇文章给大家分享的是有关Java的函数的奇怪重载是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大家都知道,Java中的类只能继承
千家信息网最后更新 2025年01月31日Java的函数的奇怪重载是什么
本篇文章给大家分享的是有关Java的函数的奇怪重载是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
大家都知道,Java中的类只能继承一个父类,但是可以实现多个接口。之所以这样,据说是因为多重继承的概念比较混乱。但是,多接口实现会出现更加混乱的问题。
1. 如果一个类实现了两个接口,但是两个接口中有签名一致的函数,怎么办?
实际上,在同一个函数中,只能有一个签名一致的函数。如下:
interface ClickListener { void fire(); } interface TouchListener { void fire(); } class Button implements ClickListener, TouchListener { @Override public void fire() { // ... } }
两个Listener的对fire的调用,都会指向同一个函数。
2. 在1的基础上,如果Button的父类已经有一个签名一致的函数。如下:
interface ClickListener { void fire(); } interface TouchListener { void fire(); } class ButtonBase { public void fire() { // ... } } class Button extends ButtonBase implements ClickListener, TouchListener { }
那么此时Button中可以不存在任何函数。两个Listener的对fire的调用,都会指向ButtonBase中的函数。奇怪么?
这种奇怪的做法和C++中的"复杂"多重继承相比,在被调用函数中完全不知道调用来自哪个Listener触发,无法根据不同的来源做不同的处理。更加变态的是,如果两个Listener中的函数只有返回值不一样的时候--对不起,悲剧了--你不能同时实现这两个接口--因为编译器不支持。
但是,这种奇怪的做法也有其实际的用途,请看下例:
/* public interface */ public interface Animal { void run(); } /* internal class */ private class Dog { @Override void run() { // ... } } /* public interface */ public FlyAnimal extends Animal { void fly(); } /* internal class */ private class FlyDog extends Dog implements FlyAnimal { @Override void fly() { // ... } }
我只能说,Java太凶残了。
以上就是Java的函数的奇怪重载是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
函数
两个
接口
一致
不同
混乱
做法
实际
指向
更多
知识
篇文章
凶残
复杂
实用
之所以
变态
只有
同时
基础
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
修身讲堂主持稿 网络安全
南京智能化软件开发售后服务
德州服务器管理系统商家
软件开发各阶段的成本比例
阿里云可以当云服务器吗
中国电信公司网络技术类
数据库模拟考核方案
巅峰战舰为什么连不上服务器
我的方舟为什么不显示服务器
网络安全与治理
莱钢永锋软件开发
能做网络安全工作的手机
虚拟苹果手机服务器地址怎么填写
网络安全防骗反诈
云服务器登录千牛后台
屏幕分享软件开发
职校软件开发是做什么的
开机 服务器正在运行中
玉溪网络安全和信息化办公室
数据库技术与应用实验结论
数据库是由组成的
我的世界离线服务器1.12.2
网络安全信息化建设培训
查询数据库表锁定
萌站服务器负荷
网络安全警示教育影视片
河南靠谱网络技术有限公司
服务器数据库怎么转移
安徽iosapp软件开发
执法局网络安全落实情况报告