Java冲突

news2024/12/27 10:27:05

本身  父类  接口(多) 如果出现同样名字的方法,就会出现冲突


 * 情况描述1:


 * 当一个类,继承了父类,实现了某接口,父类中的成员方法和接口中的方法重名
 * 解决方法:
 * 子类就近选择父类成员方法 亲爹优先原则
 *
 *使用格式:
 * 父类:super.方法名
 * 父接口:父接口名.super.方法名

public class TestConflict {
    public static void main(String[] args) {
        Son s = new Son();
        s.play();
    }
}
//接口
interface  Friend{
    default void play(){
        System.out.println("跟朋友出去玩唱ktv");
    }
}
//父类
class Father{
    public void play(){
        System.out.println("跟父亲出去钓鱼");
    }
}
class Son extends Father implements Friend {
//    1.如果不重写冲突的方法,那么会保留父类的
    @Override
    public void play() {
//        2.重写调用父类
//        super.play();
//        3.父接口
        Friend.super.play();
//        4.自己完全重写
        System.out.println("自己出去玩或者跟着momoko学java");
    }
}

情况描述2:

当一个类同时实现了多个接口,而多个接口中包含的方法出现了冲突(同名)
 * 都要做出选择
 *使用格式:
 * 父接口:父接口名.super.方法名

public class TestConflict {
    public static void main(String[] args) {
        Girl girl = new Girl();
        girl.play();
    }
}
//接口1
interface  Friend{
    default void play(){
        System.out.println("跟朋友出去玩唱ktv");
    }
}
//接口2
interface  BoyFriend{
    default void play(){
        System.out.println("跟男朋友去约会");
    }
}
class Girl implements Friend,BoyFriend{
    @Override
    public void play() {
//        1.保留1接口
        Friend.super.play();
//        2.保留2接口
        BoyFriend.super.play();
//        3.完全重写
        System.out.println("自己出去玩");
    }
}

情况描述3:

当一个类,实现了多个接口,由父接口继承后,来实现的,如果这种情况出现了冲突
 *解决方法:
 * 父接口已经解决了冲突,那么不需要再解决
 * 在接口中重写一定要加上default 而在实现类中重写不需要加上default
 

public class TestConflict {
    public static void main(String[] args) {
        Girl girl =new Girl();
        girl.play();
    }
}
//接口1
interface  Friend{
    default void play(){
        System.out.println("跟朋友出去玩唱ktv");
    }
}
//接口2
interface  BoyFriend{
    default void play(){
        System.out.println("跟男朋友去约会");
    }
}

interface superFriend extends Friend,BoyFriend{
//    接口解决冲突是要加上default
    @Override
    default void play() {
        Friend.super.play();
    }
}
class Girl implements superFriend{
    @Override
    public void play() {
//        superFriend.super.play();
        System.out.println("我自己再重写");
    }
}

 情况描述4:


 * 如果一个类,继承了父类,也实现了接口,呢么父类和父接口出现了量的冲突
 *
 * 解决方法:
 *  * 父类:super.量名
 *  * 父接口:父接口名.常量名
 *
 *  与方法冲突不同点:
 *  1.没有亲爹优先
 *  2.使用父接口的常量时,不加super
 

public class TestSub {
    public static void main(String[] args) {
        SubClass sub = new SubClass();
        sub.method();
    }


}
class SubClass extends SuperClass implements SuperInterface,FatherInterface{
    public void method(){
//        不清楚,你自己抉择->写清楚
//        System.out.println(x);
//        通过父类.量名
        System.out.println("SuperClass的x"+ super.x);
//        通过接口名.常量名
        System.out.println("SuperInterface的x"+ SuperInterface.x);
        System.out.println("FatherInterface的x"+ FatherInterface.x);
    }
}
//类
class SuperClass{
    int x = 1;
}
//接口1
interface  SuperInterface{
//    其中public static final可以省略
    int x = 2;
}
//接口2
interface  FatherInterface{
    //    其中public static final可以省略
    int x = 3;
}

总结:

当类在继承父类和实现接口中出现冲突的情况
 *方法冲突:
 *  1)父类和父接口中的方法名发生冲突  解决方案:默认亲爹优先  父类:super.方法名  父接口名.super.方法名
 *  2)实现多个接口中的方法名发生冲突  必须抉择(不然报错)  父接口名.super.方法名
 *  3)父接口继承了多个接口  解决方案:父接口解决冲突   子类中进行重写
 *  4)父类和父接口的量发生冲突     必须抉择(不然报错)  父类:super.量名 父接口:父接口名.常量名
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1621465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指针学习总结

当指针本身定义的类型不同十,指向的一次性取值长度也不同 数组元素的指针 数组存放字符串 数组存放字符串时存放在栈区,sizeof(str1) 128字节 字符指针指向字符串 str2此时存放的是h的地址,因此sizeof(str2) 4字节或者8字节 并且文字常量…

快速回复app是什么样

在电商领域,掌握一些必备的软件工具是提高工作效率、优化运营流程以及提升用户体验的关键。本文将为您介绍做电商必备的几个软件,帮助您更好地开展电商业务。 ​ 快速回复APP:重新定义沟通效率 在快节奏的现代社会中,人们对于沟通…

Python实现“黑猫投诉平台,舆论监控系统”

黑猫投诉平台,舆论监控系统 BuzzMonitor https://github.com/nangongchengfeng/BuzzMonitor.git 简介 "黑猫投诉"舆论监控系统是一款专为快速识别和响应网络投诉而设计的应用,旨在帮助企业或机构第一时间掌握公众意见和反馈。通过实时监控网…

C++:运算符重载和“const”成员

hello,各位小伙伴,本篇文章跟大家一起学习《C:运算符重载》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 赋值运算符重载1. 运算符重载2.赋值运算符重载第一个点第二个点&…

C++感受5-HelloWorld 函数版

借助 Hello (std::string_view XXX) 函数,快速向你心目中的女神问好。 视频 ffls08-HelloWorld-函数版 函数简述 函数用于封装程序中需要反复执行的事情。事情每一次执行时,所需要的初始数据的变化,由函数参数体现。 定义函数时所写的参数&…

小孩子不懂事,写着玩的

目录 Web攻防 特有漏洞 ASP安全 ASPX(.NET)安全 PHP安全 JavaWeb安全 JS,Node.js安全 Java安全 Python安全 通用漏洞 SQL注入 MySQL-root高权限读写注入 PostgreSQL-高权限读写注入 MSSQL-sa高权限读写执行注入 SQL注入体系 o…

虹科Pico汽车示波器 | 免拆诊断案例 | 2006 款林肯领航员车发动机怠速抖动

故障现象 一辆2006款林肯领航员车,搭载5.4 L发动机,累计行驶里程约为26万km。该车因发动机怠速抖动故障进厂维修,维修人员更换了火花塞、点火线圈及凸轮轴位置传感器,清洗了积炭和喷油器,故障依旧,于是向笔…

Linux系统硬盘读写慢,如何排查

若服务器硬盘读写慢,导致处理性能降低,用户响应慢(例如:ssh登录操作文件,处理很慢说明磁盘很慢) 1.查看硬盘是否繁忙 top 若值比较大,说明当前硬盘比较繁忙,有大量读写操作&#x…

PO框架【自动化测试】

对象:Tpshop商城 需求:更换头像 操作步骤: 个人信息–头像–上传图片–图片确认–确认保存 核心代码: # 进入frame框架[不熟] driver.switch_to.frame(driver.find_element_by_xpath(//*[id"layui-layer-iframe1"]))…

链式存储的特点与设计由来

简介 案例引入 相关术语 两种结构的区别与实现 注: 特点

迪拜Token2049展会圆满落幕,MVP成唯一MEMECOIN项目,闪耀全场!

近日,据多家媒体报道,于全球财富聚集地迪拜举行的全球性大型区块链会议TOKEN2049圆满落幕。来自全球的5000多家公司和100多个国家10000名参与者共同参会,讨论未来30年至50年关于区块链行业的宏大未来。 新晋MEMECOIN项目MAGA VP(…

希捷HDD最新财报:销售同比下降11%,环比增长6%,4Q24前景看好

Seagate Technology Holdings plc公布了截至2024年3月29日的第三财季财务业绩。 “随着云需求改善、我们强大的运营纪律和价格执行,希捷3月季度的营收增长了6%,非GAAP每股收益较上一季度翻了一番多。这种组合为我们市场复苏时回归目标利润率奠定了基础。…

【C++】string常用函数总结及其模拟实现

目录 一、String的构造 二、String的大小和容量 三、String的字符串比较 四、string的访问 五、String的字符插入 六、string拼接字符串 七、string的删除 八、string的查找 九、string的分割 模拟实现 一、String的构造 string():生成空字符串&#xff1…

Llama3 中文通用 Agent 微调模型来啦!(附手把手微调实战教程)

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 基于大家…

文本语音互相转换系统设计

title: 文本语音互相转换系统设计 date: 2024/4/24 21:26:15 updated: 2024/4/24 21:26:15 tags: 需求分析模块化设计性能优化系统安全智能化跨平台区块链 第一部分:导论 第一章:背景与意义 文本语音互相转换系统的定义与作用 文本语音互相转换系统是…

js进行数据移除性能比较(splice,map)

当使用 splice() 方法处理大量数据时,确实会遇到性能问题,因为它涉及到移动数组中的元素,导致操作的时间复杂度为 O(n)。对于大量数据,频繁的插入和删除可能会导致性能下降。 1、设置数组数据为10000,使用splice移除数…

linux——yum工具详解

yum是linux中自动解决软件包依赖关系的管理器 同时,yum也是一个rpm软件 这里使用yum install nginx安装nginx

前缀和 求数列的子序列的K倍区间

(直接截图比复制文字要好多了) 不会做的时候我去看了之前做的关于这道题目的笔记, (Ak 1)% k 1 (Ak 1 Ak)% k 1 只要发现了同余数的情况就说明有一个区间满足了题目的要求。 这个方法的精妙之处就在于前缀和包括了…

窗函数的选择

不同的窗函数实质上时对矩形窗进行了不同程度的加权得到的不同类型的窗函数。 将模拟角频率转换为了数字角频率 矩形窗旁瓣过大,两个频率的峰值相差较大,因此无法识别,可以使用旁瓣非常小的窗函数来进行分辨,只是想要达到相同的分…

目标检测——小麦穗头数据集

一、重要性及意义 小麦穗头检测在农业领域具有重要意义,主要体现在以下几个方面: 首先,小麦穗头检测可以帮助农民和植物科学家准确评估作物的健康状况和成熟度。通过对小麦穗部的形态特征进行测量和分析,可以及时发现作物生长过…