论坛网站制作模板手机网站制作设计

diannao/2025/10/24 0:00:11/文章来源:
论坛网站制作模板,手机网站制作设计,网站优化外包推荐,wordpress与joomla好吧#xff0c;我认为接口是一种强制对象实现一定数量功能的方法#xff0c;而不必使用继承。有点像合同。我半明白他们的意思。但是#xff0c;如果界面中的所有内容都是#xff1a;public interface animal{void eat(object food);}它没有这样的实现#xff0c;那么无论…好吧我认为接口是一种强制对象实现一定数量功能的方法而不必使用继承。有点像合同。我半明白他们的意思。但是如果界面中的所有内容都是public interface animal{void eat(object food);}它没有这样的实现那么无论谁使用您的接口每次都必须从头开始编写它。如果您创建了许多类所有这些类都实现了这些特性并且实现只是略有不同那么这将是一项非常艰巨的工作。我很感激你帮我解决这个问题因为我知道这很重要。抱歉我的打字错误太糟糕了卡尔只是按了一下按钮没有认真阅读。在我的脑海里似乎有很多。当你看到错误的时候你会觉得很有价值。stackoverflow.com/a/24436493/1286942接口是在Java中创建多重继承的唯一方法。假设您创建了一个类Animal。所有的动物包括人类都是如此。每一种动物都继承了诸如吃、呼吸等常见的方法。但是现在假设你有一个MathProblem类。您希望有一些类可以通过将问题传递给solve(MathProblem problem)方法来解决这个问题。你知道一个Human也可以一个Computer可以解决这个数学问题。所以他们都需要能够解决这个问题。你也许可以让计算机扩展一些拥有这个方法的MathSolver类但是人类已经扩展了动物并且不能扩展其他任何东西。因此一个更好的方法是使MathSolver成为一个接口让Human、Computer和任何其他需要解决问题的类都实现该接口。还请注意Human和Computer可能以完全不同的方式解决问题因为它们的对象不同。这就是接口的最佳用途。定义跨越多个继承层次结构的某些功能这些功能可以有非常不同的实现但都可以传递给接受它们中任何一个的方法。想想Comparable接口它不是某类对象所拥有的东西所有种类的东西都可以比较而且通常以非常不同的方式。但是你总是可以调用一个List的Comparable对象的sort因为你知道它们有一个特定的顺序不管它们是Numbers、Animals、Computers或其他什么(只要它们实现Comparable并定义它们的顺序)。1-我认为重要的是要补充一点继承有两个目的(1)允许继承的类对象代替基类对象(2)允许继承的类对象利用基类行为。接口对第二个目的不做任何有用的事情但对第一个目的非常有用。比起继承更喜欢组合。通过这种方式您可以在一个类中实现(比如eat()该类作为数据成员被合并到所有动物中。只写一次重用它但不能以一种方式将一种功能显式绑定到另一种功能。如果你有两种(或十种)不同的饮食方式你可以根据需要把它们换掉。虽然在这种特殊情况下组合似乎是避免代码复制的最好方法但这种回答往往会让人觉得接口在Java中是无用的。别忘了还有另一个设计原则说程序到接口而不是具体的类。所以Java中的接口几乎是任何地方都能理解和使用的东西。好点。我只是编辑了一下添加了换出位我想这可能会解决这个问题。谢谢。您混淆了接口和继承。它们是不同的概念可以互相补充。如果所有EAT方法都只是略有不同那么您可以创建一个包含公共代码的基类并通过添加不同部分的overriden方法从子类中调用它。基类仍然可以实现接口。希望是清楚的。您应该将接口视为行为的权威声明它首先与实现问题无关。如果您想避免代码重复那么可以结合使用接口使用抽象基类。在这里您可以实现可能在所有接口实现类中重复的所有内容否则。H.T.BR/托马斯一般化使用Java接口可以实现跨子类的泛化。泛化意味着这里的子类具有以不同方式实现的相同行为。标准化接口允许为实现它的所有子类设置标准化。它指定了子类必须具有的什么但不强制它应该具有的方式。100%提取接口主体提供100%的抽象这样子类就不会错过抽象方法的任何实现。如果我们使用抽象类这是不可能的。去耦合(松耦合)在开发应用程序时与最终用户交互的代码可以通过使用接口松耦合到服务器[b l c]上运行的代码。多重继承通过使用接口我们可以实现使用类不可能实现的MI。还有旧线我知道。但我刚刚读到接口是Java中创建多重继承的唯一方法。这是非常错误的因为委托(或者卡尔所说的复合)是获得多重继承的唯一方法(记住委托就是继承几乎是这样)。您只需要接口来告诉开发人员嘿别忘了委托这个或那个类接口只需要作为正确委派的提醒(或者通常是实现)但它们不能继承任何代码。使用多个继承接口根本不需要。实际上您并不需要接口来创建一个工作程序它们只是没有任何功能或功能代码的助手。顺便说一句托马斯对抽象类的看法非常正确这些抽象类远比接口重要因为这就是您可以从中获得可重用代码的地方。通常当我编写Java应用程序时我只在最后创建接口作为未来程序员的助手。或者我根本不创建任何接口d接口不是帮助者。它们不是提醒开发人员实现方法的契约。接口将被编码这样您就可以将特定的实现从需要功能的地方分离出来。使用接口更多的是为使用代码提供一种了解您期望从中得到什么的方法而不是您需要关心使用代码的细节。例如我们经常使用接口的方法之一就是在我们的业务层/数据访问层中。由于我们的业务层(BL)程序集将与数据访问层(DAL)程序集直接通信因此DAL无法与BL直接通信。如果DAL希望使用对象而不是单个字段会发生什么您必须定义自己的DAL对象并使用刚刚收到的输入对其进行水合物处理。基本上更多的工作更多的资源消耗以及多个表示相同数据的对象这使得维护成为一场噩梦。但是如果您在DAL中定义接口您可以告诉DAL的消费者它期望什么。然后您可以在BL中实现这些接口并传递接口的实例而不是BL对象。接口都是抽象出实现的细节而这些细节并非绝对必要的。[编辑]如果有很多对象可以做类似的事情那么使用可重写/虚拟方法组合接口和基类可能比仅使用接口更有用。If you are creating a number of classes all implementing such features and the implementation is only slightly different, this is going to be a lot of hard work.在这种情况下您可以很容易地在类的层次结构中创建另一个层实现Animal但对于以某种方式吃东西的所有动物来说它是一个祖先类。class Herbivore implements Animal {public void eat(Object food) {...}}class Cow extends Herbivore..class Horse extends Herbivore..允许您使用super.eat()覆盖eat只更改小部分。您应该同时期待代码重用和组件封装。然后如果你的接口真的不能描述类本身而仅仅是它的一个组件你可以按照卡尔·马纳斯特的建议进行组合。是的您需要随时实现它但是您可以每次都不同地实现它任何调用它的类都不需要担心它是如何实现的。例如如果您有一个动物园对象其中包含一组动物(new tiger()、lion()、bear())那么您的动物园可以为某个集合a.eat()中的每一个动物a执行该操作它将起作用。动物园不在乎有三种不同类型的动物以完全不同的方式进食。一个主要原因是您可以使用接口引用(类似于抽象方法)创建对象。当您这样做时每个实现接口的对象都可以分配给它。例如如果狗和车都是可清洗的那么您可以这样做可清洗WDnew dog()可洗厕所新车()如果washable具有public abstract方法wash()则可以执行以下操作WD。WC.WAW()将调用它们各自的方法。这还意味着您可以接受一个接口作为方法的参数这意味着您不必添加不必要的代码来处理实现某个接口的每个类。有关更详细的解释请参阅此处http://www.artima.com/objectsandjava/webuscrit/polymorphisminterfaces1.html这并不是一个真正的答案只是一个我认为在考虑接口时有用的例子而是考虑需要该方法的接口Comparable。public int compareTo(T anotherObject)用户可以随心所欲地实现这一点。例如如果一个Person implements Comparable比较可以基于姓氏然后是名字忽略大写。或者它可以根据用户想要的年龄等来决定。实现这个接口是非常有用的因为它允许用户使用像Collections.sort()这样的东西这些东西要求要排序的元素需要具有可比性(否则如何进行比较)你想得倒过来了。不是首先考虑实现而是首先考虑行为(如方法签名所描述)。然后在基类中实现适当的行为从而提供更灵活、可扩展的系统。您很快就摒弃了契约式设计但它是一个关键的设计策略也是Web服务、SOA等的基础。and it has no implementation as suchthen whoever uses your interface hasto write it from scratch..every time.接口的每个实现都可以是不同的。关键是您可以在不知道实现的情况下使用接口。举个例子public interface ILogger{void WriteMessage(string message);}您的应用程序可以使用ILogger接口来记录错误/调试信息等但不管如何实现记录器它可以是FileSystemLogger或DatabaseLogger或任何其他实现。因此您可以在任何时候替换实现而不必更改提到日志记录的代码中的所有位置。

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

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

相关文章

电子商务网站规划的原则是什么杭州网站改版公司电话

感觉像是对微服务的炒作正在慢慢地落到实处,并且我们的行业开始意识到,仅通过在现有组件之上公开一些HTTP接口就无法轻松创建根据微服务背后的体系结构范式的系统。 我们似乎确实同意必须进行服务优化的基础架构,文化和组织变革,最…

在哪里做卖车网站网站登录注册做验证码的目地

文章目录 设置环境变量设置自启动参考 设置环境变量 cd vim .zshrc输入一下内容 # 配置Conda CONDA_HOME/Users/hanliqiang/miniconda3 PATH$CONDA_HOME/bin:$PATH生效配置 source .zshrc设置自启动 conda init zsh.zshrc 文件中将会出现以下内容 # >>> conda i…

做网站所需技术珠海seo全网营销

微信公众平台已成为目前最热的企业营销推广平台,每天都有大量互联网公司和传统企业进驻,使用公众账号通过移动端和粉丝互动,不仅可以群发文字、图片、视频、语音等信息内容,还可以进行一对一的深入沟通。 现在微信公众平台已经成为…

网站个人备案和企业备案导视设计分析

什么是IoT? IoT,即物联网(Internet of Things),是通过信息传感设备和互联网将各种物品连接起来,实现智能化的识别、定位、跟踪、监控和管理的网络系统。 以下是关于IOT的一些详细解释: 基本概…

网站上线确认书网站免费源码下载

书接上两回 柒拾- tushare 模拟策略交易 (一) 柒拾壹- tushare 模拟策略交易 (二) 开始 终于我们可以可以来进行模拟了 复杂 的我不会,所以就写个最简单的策略吧: 买入条件 比两年前是上升的比一年前…

中国十大发布信息网站排名自豪地采用wordpress 删除

CommonJS模块是运行时加载,ES6模块是编译时输出接口 是因为CommonJS加载的是一个对象(module.exports属性),该对象只有在脚本运行结束时才会生成.而ES6模块不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成. CommonJS模块输出的是一个值的复制,E…

大连网站设计策划网站设计师培训中心

引言: 什么是黑盒测试呢!? 像我一样的测试小白就会望文生义了:对黑盒子测试 那么黑盒子是什么!? 思考5秒后,得出了这样的答案:黑盒子就是黑色的盒子,嘿嘿! 正文&#xf…

专注网站建站网站文章页图片不显示图片

此示例显示了如何使用5G NR下行链路载波波形发生器来创建基带分量载波波形。 介绍 此示例显示了如何使用来参数化和生成5G新无线电(NR)下行链路波形nrWaveformGenerator。可以生成以下通道和信号: PDSCH及其关联的DM-RS和PT-RS PDCCH及其相…

去哪里找空间做网站最新免费网站源码

在Redis中的数据删除策略有三种:定时删除、惰性删除、定期删除 定时删除 当key设置有过期时间,且过期时间到达时,立即执行key的删除操作 优点:节约内存,到时就删除,立即释放不必要的内存占用 缺点&#xf…

泰州网站优化公司网站开发背景怎么写

a int(input()); print(len(str(a))) print(a) 输入: 123 输出: 3 123

网站专题模板下载为什麼建网站要先做数据库

安装 安装很简单,直接在终端输入以下命令即可 sudo apt-get install nasm 安装完成后,如果可以查看到nasm的版本号即可视为安装成功 nasm -version 测试 创建汇编文件 创建一个asm文件 vim hello.asm 文件内容如下 section .datahello: db …

新乡网站建设哪家正规江苏省建设厅网站查询施工员证

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、线程组 线程组…

新建网站外链怎么做知名大型网站搭建公司

web158 知识点: auto_append_file 是 PHP 配置选项之一,在 PHP 脚本执行结束后自动追加执行指定的文件。 当 auto_append_file 配置被设置为一个文件路径时,PHP 将在执行完脚本文件的所有代码后,自动加载并执行指定的文件。 这…

定制网站公司哪家好基金网站建设需求书

http://blog.fens.me/series-nodejs/转载于:https://www.cnblogs.com/chinafbi/p/5394482.html

网站竞价怎么做广州建设工程中心网站

基础知识: 概括: Adobe Photoshop,简称PS,是由美国Adobe Systems开发和发行的图像处理软件。属于再加工型软件,是对很多素材的再次加工处理,并非原创型软件。 功能:Photoshop主要处理以像素构成的位图图像…

网站建设简洁网站建设英语

vue3项目绝对路径重命名后vscode无法提示路径 设置如下: //vite.config.js resolve: {// 绝对路径重命名 @/xxxx => src/xxxxalias: {"@": path.resolve(__dirname, "src"),

wordpress微网站模板seo推广绩效考核指标是什么

视频链接 FPGA-A7板级电源硬件实战01_哔哩哔哩_bilibili FPGA-A7板级电源硬件实战 1、基于A7 板级的系统框图 2、基于A7 板级的电源设计细则 2.1、A7 FPGA功耗评估 Artix-7 FPGA电源有VCCINT, VCCBRAM, VCCAUX, VCCO, VMGTAVCC和VMGTAVTT。 2.1.1、A7 FPGA电源管脚 2.1.2…

企业网站功能对比分析关于网站建设与维护论文

Erlang Rebar 使用指南之四:依赖管理全文目录:本章链接:1 rebar依赖定义Rebar取得和构建符合OTP/Rebar规范的项目。如果项目包含子项目,Rebar会自动递归地构建它们。项目的依赖在project_dir/rebar.config中定义,形式如…

中徽园林建设有限公司网站基金会网站建设方案

一、页面内跳转的锚点设置 页面内的跳转需要两步&#xff1a; 方法一&#xff1a; ①&#xff1a;设置一个锚点链接<a href"#miao">去找喵星人</a>&#xff1b;&#xff08;注意&#xff1a;href属性的属性值最前面要加#&#xff09; ②&#xff1a;在页…