interface相关内容

工厂方法如何返回接口和抽象类的实例?

ExecutorService和Service是接口,因此只有抽象方法,这意味着它们的方法没有实现。那么,我们如何在接口类型的引用上调用future.get()、es.submit()和es.shutdown()方法呢?例如,为什么我们可以做以下事情? Future f = ... f.get(); 这里有一个更具体的例子: import java.util.concurrent. ..
发布时间:2022-09-02 13:20:31 Java开发

我们应该在什么时候使用C#中的默认接口方法?

在C#8及更高版本中,我们有default interface methods,因此: 这不是破坏了接口的原则吗? 什么时候应该使用默认接口方法而不是基础(抽象)类? 推荐答案 为什么我们有接口? 从理论上讲,接口实现和类继承都解决了同一个问题:它们允许您在类型之间定义subtype relationship。 那么为什么我们在C#中两者都有呢?我们到底为什么需 ..
发布时间:2022-07-23 18:22:10 C#/.NET

Rust特性是否与Java接口相同

在我看来,Rust的trait与Java的interface是一样的--一组需要在对象上实现的函数。 将其命名为trait而不是interface是出于技术原因还是出于某种偏好? 推荐答案 RUST特征和Java接口都解决了这样一个问题,即有多个可能的实现遵循某种约定/协议/接口来与值/对象交互,而不像Java超类那样约束实现细节。它们可以在许多相同的情况下使用。然而,它们在许多 ..
发布时间:2022-05-25 19:57:03 其他开发

所需接口和提供的接口之间有什么区别

我大体知道: 接口是引用类型,它类似于类, 它只能包含常量、方法签名、默认方法、静电方法和嵌套类型。方法体仅存在于默认方法和静电方法。无法实例化接口-它们只能由类实现或由其他接口扩展? 但是必需的接口和提供的接口有什么不同? 推荐答案 提供和必需的接口始终引用接口的概念,指明视点。 我希望下面的图表能对这个主题有所帮助。 在实现级别上,提供的接口是由类实现的接口(在 ..
发布时间:2022-03-10 09:25:28 Java开发

Java 传递方法作为参数

我正在寻找一种通过引用传递方法的方法.我知道 Java 不会将方法作为参数传递,但是,我想找一个替代方案. 有人告诉我,接口是作为参数传递方法的替代方法,但我不明白接口如何通过引用充当方法.如果我理解正确,接口只是一组未定义的抽象方法.我不想发送一个每次都需要定义的接口,因为几个不同的方法可以调用相同的方法,但参数相同. 我想要完成的是类似这样的事情: public void set ..
发布时间:2022-01-30 09:38:17 Java开发

Java 中的类型 List 与类型 ArrayList

(1) 列表();(2) ArrayListmyList = new ArrayList(); 我知道使用 (1),List 接口的实现可以交换.似乎(1)通常在应用程序中使用,无论需要(我自己总是使用它). 我想知道是否有人使用(2)? 此外,这种情况实际上需要使用 (1) 而不是 (2) 的频率(即,如果 (2) 不够……除了 编码接口和最佳实践等) 解决方案 几乎 ..
发布时间:2022-01-30 09:25:35 Java开发

继承和多态的区别

我正在研究多态性.我无法确定 Java 中关于这两个特性的类比. 假设 Animal 类是一个具体的超类,其中 Cat 和 Dog 作为其子类.我知道这是一个继承的例子.但是 Cat 和 Dog 类不是 Animal 类的变形吗? 我非常了解 Java 中的接口.我不明白为什么使用接口而不是具体的类来解释多态性.可能创建接口的全部目的是创建多态,但我想知道为什么是接口而不是具体类? ..
发布时间:2022-01-24 16:49:17 Java开发

C# 一个列表中的不同类对象

我现在已经四处寻找解决这个问题的方法.我找到了几种可以解决它的方法,但老实说,我没有意识到哪些方法会被认为是“正确的"C# 或 OOP 解决方法.我的目标不仅是解决问题,而且是制定一套好的代码标准,我相当确定有一个标准的方法来处理这个问题. 假设我有 2 种类型的打印机硬件,它们各自的类和通信方式:PrinterType1、PrinterType2. 如果需要,我还希望以后能够添加另一 ..
发布时间:2022-01-24 16:46:04 C#/.NET

多态性和接口 - 澄清?

(迂腐问题) 根据 wikipedia 有 3 种类型多态性: 即席多态性 指的是可以应用于参数的多态函数不同的类型,但根据不同的类型表现不同应用它们的论点 换句话说:重载: function Add(x, y : Integer ) : Integer;...函数添加(s,t:字符串):字符串; 参数多态性 允许通用地编写函数或数据类型,以便它可以相同地处理值而 ..
发布时间:2022-01-24 16:43:25 Java开发

“策略设计模式"仅仅是多态性的基本使用吗?

在策略设计模式中,我们所做的是 创建一个通用接口. 使用该接口和重写的方法实现一组类. 让运行时为与该公共接口具有相同类型的对象选择实际类,并调用将根据类正确解析的覆盖方法. 我的问题是,这不是我们学习的多态性和方法覆盖的基本示例吗? 除了可以使用抽象类,替换通用接口之外. 解决方案 你描述的是一种实现策略模式的方法.您还描述了如何实现很多不同的设计,因为我们可能想要 ..

IList<T>并列出<T>接口转换

我大致了解接口、继承和多态,但有一件事让我感到困惑. 在这个例子中,Cat 实现了 IAnimal,当然 List 实现了 IList: IList猫=新列表(); 但它会产生编译错误(无法隐式转换类型...).如果我使用 Cat 继承的抽象超类 [Animal],它也将不起作用.但是,如果我将 IAnimal 替换为 Cat: IList猫=新列表(); 它编译得很好. ..
发布时间:2022-01-24 16:36:35 C#/.NET

有没有理由在接口中隐藏继承的成员?

我了解从另一个类继承的类可能会通过使用 new 关键字来隐藏属性.然而,这隐藏了该属性的特定实现,所以我可以看到它是如何使用的. 在实现其他接口的接口中隐藏成员是否有任何实际理由?例如考虑下面的例子.IChildInterface 实现 IParentInterface,并隐藏 PropertyA. 接口IParentInterface{字符串名称 { 获取;放;}int Property ..
发布时间:2022-01-24 16:33:00 C#/.NET

Java:使用多态性来避免 if 语句?

我正在尝试编写一个基于用户选择初始化某些布局的 java 程序.我想要做的是尽量避免编写一堆 if 语句,以便在需要添加更多布局时代码可以扩展以备将来使用.我听说实现这一点的最佳方法是使用多态,但我对多态的理解仍然有点模糊. 说我要实现这个案例: if (用户选择 layoutA) { 初始化 layoutA }if (用户选择 layoutB) { 初始化 layoutB }如果(用户选 ..
发布时间:2022-01-24 16:31:23 Java开发

在 C++11 中声明接口的最佳方法

众所周知,有些语言有接口的概念.这是Java: 公共接口可测试{无效测试();} 如何在 C++(或 C++11)中以最紧凑的方式实现这一点,并且代码噪音很小?我很欣赏不需要单独定义的解决方案(让标题就足够了).这是一种非常简单的方法,即使我也觉得有问题 ;-) 类可测试{上市:虚拟无效测试()= 0;受保护:可测试();可测试(const Testable& that);可测试&opera ..
发布时间:2022-01-24 16:28:57 C/C++开发

在实现中用派生类覆盖接口方法返回类型

我正在尝试在类中实现 (C#) 接口方法,返回派生类型而不是接口中定义的基类型: 接口IFactory{BaseCar GetCar();}类 MyFactory : IFactory{我的汽车 GetCar(){}} 当然是在哪里: 类 MyCar : BaseCar{} 但是,会发生以下错误: “MyFactory"没有实现接口成员“IFactory.GetCar()".'MyF ..
发布时间:2022-01-24 16:12:03 C#/.NET