【问题标题】:What function can I call if create a object of a class that is inherited from interface?如果创建从接口继承的类的对象,我可以调用什么函数?
【发布时间】:2018-09-11 09:46:14
【问题描述】:
public Interface IPerson 
{   
    void SetAge(int age);
}

public class Man : IPerson
{
    public void SetAge(int age) {}
    public int GetAge() {return 20; }
}

IPerson p = new Man();

我们可以使用 p 调用哪些函数?既然已经创建了 man 对象,那么它会调用这两个函数吗?

【问题讨论】:

  • “两种方法”是什么意思?接口上实际上只有一个方法。无论如何:为什么不试试呢?会比写这个问题要快得多,不是吗?

标签: c# .net c#-4.0


【解决方案1】:

您只能调用SetAge,因为这是在接口IPerson 中定义的唯一方法。因此,如果您声明了一个变量,该变量可以保存对实现此接口的对象的引用,那么我们目前可以肯定的唯一方法是SetAge

【讨论】:

    【解决方案2】:

    您只能使用接口引用调用SetAge(int age) 方法。没有其他方法可用。

    【讨论】:

      【解决方案3】:

      由于对象'p'的类型是'IPerson',所以你只能调用IPerson下的方法。这里 'SetAge' 是接口 IPerson 中定义的唯一方法。

      【讨论】:

        猜你喜欢
        • 2021-12-11
        • 2010-11-05
        • 1970-01-01
        • 2013-05-14
        • 1970-01-01
        • 2017-04-14
        • 2010-10-04
        相关资源
        最近更新 更多