Tag: 接口

接口是否inheritance自java中的Object类

接口inheritance自Java中的Object类吗? 如果没有,那么我们如何能够在接口实例上调用对象类的方法 public class Test { public static void main(String[] args) { Employee e = null; e.equals(null); } } interface Employee { }

定义构造函数签名的接口?

奇怪的是,这是我第一次碰到这个问题,但是: 你如何定义一个C#接口的构造函数? 编辑 有些人想要一个例子(这是一个自由时间的项目,所以是的,这是一个游戏) IDrawable +更新 +绘制 为了能够更新(检查屏幕边缘等),并绘制自己将始终需要一个GraphicsDeviceManager 。 所以我想确保对象有一个参考。 这将属于构造函数。 现在我写下来了,我想我在这里实现的是IObservable和GraphicsDeviceManager应该采用IDrawable …看来要么我没有得到XNA框架,或框架不是很好。 编辑 在接口的上下文中,我对构造函数的定义似乎有些困惑。 一个接口确实不能实例化,所以不需要构造函数。 我想定义的是一个构造函数的签名。 完全像一个接口可以定义一个特定方法的签名,接口可以定义一个构造函数的签名。

在Java中显式调用默认方法

Java 8引入了默认方法来提供扩展接口的能力,而无需修改现有的实现。 我想知道是否有可能明确调用方法的默认实现时,由于在不同的接口冲突的默认实现,已被重写或不可用。 interface A { default void foo() { System.out.println("A.foo"); } } class B implements A { @Override public void foo() { System.out.println("B.foo"); } public void afoo() { // how to invoke A.foo() here? } } 考虑到上面的代码,你将如何从类B的方法调用A.foo() ?

了解C#中的协变和逆变接口

我在C#上阅读的教科书中遇到过这些问题,但是由于缺乏上下文,我很难理解它们。 有一个很好的简洁的解释,他们是什么,他们在那里有什么用? 编辑澄清: 协变界面: interface IBibble<out T> . . 反变化界面: interface IBibble<in T> . .

多态:为什么使用“List list = new ArrayList”而不是“ArrayList list = new ArrayList”?

可能重复: 为什么要selectJava类的接口呢? 我应该什么时候使用 List<Object> list = new ArrayList<Object>(); ArrayList从Listinheritance,所以如果ArrayList中的某些特性不在List ,那么我将失去ArrayList一些特性,对吧? 编译器在尝试访问这些方法时会注意到一个错误?

接口常量的用途是什么?

我正在学习Java,并发现接口可以有公共静态和最终的字段。 到目前为止,我还没有看到这方面的例子。 这些接口常量的一些用例是什么,我可以在Java标准库中看到一些吗?

隐藏零值,了解为什么golang在这里失败

在这种情况下,我不明白如何正确地保证某些东西不是nil 。 package main type shower interface { getWater() []shower } type display struct { SubDisplay *display } func (d display) getWater() []shower { return []shower{display{}, d.SubDisplay} } func main() { // SubDisplay will be initialized with null s := display{} // water := []shower{nil} water := s.getWater() for _, x := range water { […]

Java中的抽象类与接口

我被问了一个问题,我想在这里回答我的答案。 问:在哪种情况下,扩展抽象类而不是实现接口更合适? 答:如果我们使用模板方法devise模式。 我对么 ? 如果我无法清楚地说出问题,我感到抱歉。 我知道抽象类和接口的基本区别。 1)当需求是这样的时候,使用抽象类:我们需要在每个子类中为特定的操作(实现该方法)实现相同的function,并且为其他一些操作(只有方法签名) 2)使用接口,如果你需要把签名放在同一个(和实现不同),以便你可以遵守接口的实现 3)我们可以扩展一个抽象类的最大值,但可以实现多个接口 重申一个问题:除了上面提到的那些,还有没有其他的场景需要使用抽象类(一种是模板方法devise模式只是基于这个概念)? 接口与抽象类 在这两者之间进行select,取决于你想要做什么,但对我们来说幸运的是,Erich Gamma可以帮助我们一点。 和往常一样有一个权衡,一个接口给你基础类的自由 ,一个抽象类给你随后添加新方法的自由 。 – Erich Gamma 你不能去改变一个接口,而不必在你的代码中改变很多其他的东西 ,所以唯一的方法就是创build一个全新的接口,这可能不是一件好事。 Abstract classes应主要用于密切相关的对象。 Interfaces更好地为不相关的类提供通用的function。

用同样的方法在一个类中实现两个接口。 哪个接口方法被覆盖?

两个接口具有相同的方法名称和签名。 但是由一个类实现,那么编译器将如何识别哪个接口是哪个方法? 例如: interface A{ int f(); } interface B{ int f(); } class Test implements A, B{ public static void main(String… args) throws Exception{ } @Override public int f() { // from which interface A or B return 0; } }

为什么在Java中使用静态嵌套接口?

我刚刚在我们的代码库中find了一个静态嵌套的接口。 class Foo { public static interface Bar { /* snip */ } /* snip */ } 我从来没有见过这个。 原来的开发人员遥不可及。 所以我不得不问: 什么是静态接口背后的语义? 如果我删除static会有什么变化? 为什么有人会这样做?