当我了解到该接口也用于封装方法时,但是在以下代码中,通过将ojb强制转换为MainClass,我可以从Mainclass访问我未在接口中声明的其他方法,因此现在发生封装。

class Program
{
    static void Main(string[] args)
    {
        IInterface obj = new MainClass();
        Console.WriteLine(((MainClass)obj).FullName()+" " +obj.LastName());
        Console.WriteLine(((MainClass)obj).SayHello());
        Console.ReadKey();
    }
}

public interface IInterface
{
    string LastName();
}

public class MainClass:IInterface
{
    public  string FullName()
    {
        return "Raman Singh";
    }
    public string SayHello()
    {
        return "Hello Sir111";
    }

    public string LastName()
    {
        return "Chauhan";
    }
}

最佳答案

当您将对象转换为MainClass时,对象引用将从IInterface更改为MainClass。因此,所有MainClasses Mehtods都可用,因为所述方法的可见性取决于对象引用。
如果不将对象强制转换为MainClass并使其引用成为IInterface类型,则仅LastName方法可见。

关于c# - 接口(interface)在这里有什么用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24321674/

10-12 04:55