Java的函数的奇怪重载是什么
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,本篇文章给大家分享的是有关Java的函数的奇怪重载是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。大家都知道,Java中的类只能继承
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
moba 服务器开发
铜城网络安全宣传周
网络安全为人民宣传主题班会
网络安全岗位说明
关于网络安全我们要注意什么
剑三 连接服务器超时
代码执行很慢但是数据库很快
大搜车和数据库
服务器如何解决自动重启
搭建unix服务器
登录华为帐号显示网络服务器繁忙
浅析大学生网络安全论文
造成数据库的安全性问题
数据库事务的四大特点
公司服务器管理与维护
软件开发 不需用户过多参与
孙冬冬软件开发
软件开发后服务期限
2020网络安全工作讲话
方舟手游怎么带物资去其他服务器
如何能接到软件开发的业务
nlp在网络安全中的应用
上海品质软件开发案例
数据库不满足某种格式
新友人事档案数据库
网络安全绘画无字a3纸
大搜车和数据库
数据是如何被写入数据库的
珠海名望软件开发
http服务器运行游戏怎样关闭