接口的扩展方法 注意点

只把必备的契约定义在接口中,把其他功能留给扩展方法去实现

定义接口的时候,只把必备的功能列出来就行了,而其他一些功能则可以在别的类里面以扩展方法的形式去编写,那些方法能够借助原接口所定义的基本功能来完成自身的任务。
这样做使得实现该接口的人只需要给少数几个方法编写代码,而客户端则既可以使用这几个基本方法,又可以使用基于这些方法所开发出来的扩展方法。
》》有一个问题需要注意:
如果已经针对某个接口定义了扩展方法,而其他一些类又想要以它们自己的方式来实现这个扩展方法,那么就有可能产生奇怪的结果。
》》》如果两个扩展方法相同
在这里插入图片描述

在实际的编程工作中,应该保证扩展方法的行为与类里面的同名方法相一致。也就是说,如果想在类中以更为高效的算法重新实现早前所定义的扩展方法,那么应该保证其行为与之相同。保证了这一点,就不会影响程序正常运行。
如果 用子类声明 接口 IEat eat = Dog(); eat.Cat();
这个Cat是执行接口扩展方法。而非本身的方法

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion WebUI详细使用指南

Stable Diffusion WebUI(AUTOMATIC1111,简称A1111)是一个为高级用户设计的图形用户界面(GUI),它提供了丰富的功能和灵活性,以满足复杂和高级的图像生成需求。由于其强大的功能和社区的活跃参与&…

php 安装 swoole扩展

一 在swoole官网查询适配版本Swoole 文档 2. php环境为7.3下载 4.8 ​ wget https://pecl.php.net/get/swoole-4.6.6.tgztar -zxvf swoole-4.6.6.tgzcd swoole-4.6.6/usr/local/php7/bin/phpize​ ./configure --enable-openssl --enable-sockets --enable-mysqlnd --enabl…

Downie 4 for Mac:视频下载的新选择

对于Mac用户来说,想要轻松下载网上的视频内容,Downie 4无疑是一个绝佳的选择。这款专为Mac打造的视频下载工具,凭借其强大的功能和简洁的操作界面,让视频下载变得轻松又高效。 Downie 4支持从众多网站下载视频,包括各…

斯坦福报告解读4:图解有趣的推理基准(中)

《人工智能指数报告》由斯坦福大学、AI指数指导委员会及业内众多大佬Raymond Perrault、Erik Brynjolfsson 、James Manyika等人员和组织合著,该报告已被公认为最权威、最具信誉人工智能数据与洞察来源之一。 2024年版《人工智能指数报告》是迄今为止最为详尽的一份…

逍遥散人的“痛婚”,让《光夜》玩家悄悄破防了

网红博主的一场求婚,让《光与夜之恋》玩家破防了。 知名游戏博主逍遥散人发微博公布求婚成功,本来应该是一件喜事,但却因为求婚场景布满了《光与夜之恋》男主角之一陆沉的谷子(周边),遭到了“6推”&#x…

AI知识库和Agent简介及实现

AI知识库和Agent简介及实现 引言 随着人工智能的发展,大规模预训练模型(Large Pre-trained Models,简称大模型)成为了AI领域的重要研究方向。大模型通过大量的数据训练,能够在各种任务中展现出强大的性能。本文将重点…

出租房水电抄表系统的全面解析

1.系统定义和功能 出租房水电抄表系统是一种智能的可视化工具,关键用于解决房东在经营好几个出租房源时,对水电的使用量统计分析、收费和管理上的问题。通过自动化抄表、收费和通告,此系统减轻了房东的工作负担,提高了效率&#…

深入理解统计学中的最大值与最小值

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、统计学中的基础概念:最大值与最小值 1. 创建数组与数据导入 2. 求解整体数…

电表自动抄表系统:智能时代的能源管理新方式

1.界定和功能 电表自动抄表系统是一种现代化电力计量技术,它利用先进的通讯技术和互联网,完成了远程控制、实时电磁能数据采集和处理。系统的主要作用包含全自动载入电表数据信息、实时检测电力应用情况、出现异常报案及其形成详尽能源使用报告&#xf…

设置 SSH 主机 *** 正在初始化 VS Code 服务器

首先在server端 找到vscode server的服务端: ps -ef|grep node 然后kill掉 kill -9 pid 然后删除掉 .vscode-server 文件 rm -rf .vscode-server

Remix IDE 创建和部署第一个合约HelloWorld

Remix IDE 地址 https://remix.ethereum.org/ 流程步骤: 创建一个新文件 输入文件名保存 在文件资源管理器中,点击新建文件图标创建一个新文件,并给它命名。在 Remix 中,默认的文件扩展名是 .sol ,如果文件名没有…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日,2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办,空军军医大学、西安交通大学、西北工业大学承办,通过二十多场论坛、百余项成果,集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

容器Android:Waydroid

环境:intel PC,Ubuntu20.04 目标:在Ubuntu20.04上搭建waydroid Android容器系统1. 搭建weston环境 由于waydroid依赖wayland环境,当前Ubuntu20.04默认为X11,需要安装weston $sudo apt install weston $weston #进入W…

基于L1范数惩罚的稀疏正则化最小二乘心电信号降噪方法(Matlab R2021B)

L1范数正则化方法与Tikhonov正则化方法的最大差异在于采用L1范数正则化通常会得到一个稀疏向量,它的非零系数相对较少,而Tikhonov正则化方法的解通常具有所有的非零系数。即:L2范数正则化方法的解通常是非稀疏的,并且解的结果在一…

【Spring Cloud】分布式配置动态刷新

目录 问题解决方案1.使用Spring Boot Actuator监控接口【不推荐】流程图使用Spring Boot Actuator的步骤 2.Spring Cloud Bus第一种方案问题Spring Cloud Bus流程图Spring Cloud Bus实现客户端刷新的步骤开发准备实现1. 在config-server中添加依赖2.在config-server中添加配置a…

LeetCode --- 399周赛

题目列表 3162. 优质数对的总数 I 3163. 压缩字符串 III 3164. 优质数对的总数 II 3165. 不包含相邻元素的子序列的最大和 一、优质数对的总数I 这里由于数据范围比较小,我们可以直接暴力枚举,代码如下 class Solution { public:int numberOfPairs…

linnux上安装php zip(ZipArchive)、libzip扩展

安装顺序: 安装zip(ZipArchive),需要先安装libzip扩展 安装libzip,需要先安装cmake 按照cmake、libzip、zip的先后顺序安装 下面的命令都是Linux命令 1、安装cmake 确认是否已安装 cmake --version cmake官网 未安装…

渗透测试之信息收集篇

前言 信息收集的重要性 进行渗透测试之前,最重要的一步就是信息收集。 信息收集可以让渗透者选择合适和准确的渗透测试攻击方式,缩短渗透测试时间。 所谓知己知彼,百战不殆,我们越了解测试目标,测试的工作就越容易。 最后能否成功渗透进入目…

【MySQL数据库】 MySQL主从复制

MySQL主从复制 MySQL主从复制主从复制与读写分离的意义主从数据库实现同步(主从复制)三台mysql服务器搭建主从复制,要求不可以用root帐号同步,要求第三台服务器在测试过1、2的主从复制之后进行主从复制配置四台mysql服务器(m1,s1,…

如何遍历并处理不平衡的Python数据集

目录 一、引言 二、不平衡数据集的概念与影响 三、处理不平衡数据集的策略 重采样策略 集成学习方法 代价敏感学习 一分类方法 四、Python工具与库 五、案例分析与代码实现 案例一:使用imbalanced-learn库进行上采样 案例二:使用scikit-learn…