当我了解到该接口也用于封装方法时,但是在以下代码中,通过将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/