当前位置: 首页 > 面试题库 >

Java中是否存在接口的C#“显式实现”?

施弘壮
2023-03-14
问题内容

在C#中,如果有两个具有相同方法的基本接口(例如F()),则可以使用显式实现来执行不同的impl。对于F()。这使您可以不同地对待与当前视图相对应的对象:作为IMyInterface1或IMyInterface2。这在Java中可行吗?


问题答案:

不,没有像Java中C#的显式接口实现那样的东西。

从好的方面来说,Java具有协变量返回类型,因此,如果您想提供比接口指定的类型更强的实现,那就可以了。例如,这很好:

interface Foo
{
    Object getBar();
}

public class Test implements Foo
{
    @Override
    public String getBar()
    {
        return "hi";
    }
}

C#不允许这样做-解决它的方法之一通常是显式实现接口,然后使用更具体的公共方法(通常由接口实现调用)。



 类似资料:
  • 本文向大家介绍详解C#中对于接口的实现方式(隐式接口和显式接口),包括了详解C#中对于接口的实现方式(隐式接口和显式接口)的使用技巧和注意事项,需要的朋友参考一下 C#中对于接口的实现方式有隐式接口和显式接口两种: 隐式地实现接口成员 创建一个接口,IChinese,包含一个成员 Speak;我们创建一个类Speaker,实现接口Chinese 这个就是隐式实现接口。 隐式实现调用方法如下: 都可

  • 问题内容: 我有一个对象。我想确定对象表示的类型是否实现特定的接口。我想知道如何实现? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将添加实现接口的Class对象添加到我的地图。问题是将一个对象作为参数。我无法实例化接口。所以我对此感到茫然。有任何想法吗? 问题答案: 您应该使用:

  • 我有一个对象。我想确定对象表示的类型是否实现了特定的接口。我想知道这是如何实现的? 我有以下代码。基本上,它所做的是获取指定包中所有类的数组。然后,我想遍历数组并将实现接口的类对象添加到映射中。问题在于将对象作为参数。我无法实例化接口。所以我有点不知所措。有什么想法吗?

  • 本文向大家介绍接口的隐式实现是什么?何时在C#中使用接口的隐式实现?,包括了接口的隐式实现是什么?何时在C#中使用接口的隐式实现?的使用技巧和注意事项,需要的朋友参考一下 C#接口成员可以显式或隐式实现。 隐式实现在成员名称之前不包括要实现的接口的名称,因此编译器会推断出该名称。成员将公开显示,并且在将对象转换为混凝土类型时可以访问。 方法的调用也没有不同。只需创建该类的对象并调用它即可。 如果在

  • 问题内容: 我正在一个项目中,该项目有很多由库创建的对象,并且无法访问这些对象的创建过程。 以下代码片段很好地说明了我的问题。 码: 是Clazz在编译时可能会或可能不会实现的接口。 码: 以下代码是我遇到的问题。请注意以下几点: 仅在c是的实例时调用。 并且都是我无法访问的类中的私有方法。 在编译时,将 不 包含名为的方法。 ExampleExecutor 不是 我的课程。我无法以任何方式访问它

  • 问题内容: 我在不同的时间间隔中对某些值进行了分类。多数格式为[20-30],但有些格式为[30-infinite]。 您是否知道可以表示的间隔类: 双方都不封闭的间隔(例如(0-5)或[0-5)) 在无限时关闭(或开始)的时间间隔 问题答案: Time&Money项目似乎具有您需要的Interval类。 请在svn:interval包中查看这些文件。