C#接口理解

文章讲述了C#中接口的概念和作用,接口作为抽象定义,提供了方法签名但不包含实现,使得类在继承接口后必须实现接口的所有方法。接口用于确保不同类实现相同方法,方便用户调用和统一管理。示例比较了使用接口前后的代码,展示了接口如何简化和规范多类间的交互,实现多态性。

1 C#接口的作用

定义接口,里面包含方法,但是没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码。

(1)从用户(使用类的用户)的角度来说,如果他知道了某个类是继承于创建的接口,那么他就可以放心大胆的调用接口里的方法,而不管接口中的方法具体是如何实现的。

(2)从设计的角度看,一个项目中用若干个类需要去编写,由于这些类比较复杂,工作量比较大,这样每个类就需要占用一个工作人员进行编写,比如A程序员去写A类,B程序员去写B类。

这两个类本来没什么联系的,可是由于用户需要他们都实现一个关于某个的方法;

这就要对他们进行一种约束,让他们都继承于这个接口。

目的是方便统一管理,另一个是方便调用。

当然,不使用接口一样可以达到目的。只不过这样的话,这种约束就不那么明显。

 2 C#中接口的深入浅出

(1)不用接口

class clsVBProgramer
{
    public void WriteCode()
    {
        Console.WriteLine("用VB写程序的程序员");
    }
}

class clsDelphiProgramer
{
    public void WriteCode()
    {
        Console.WriteLine("用Delphi写程序的程序员");
    }
}

class Program
{
    public void WritePrograme(clsVBProgramer programer)//用VB写代码
    {
        programer.WriteCode();
    }
    public void WritePrograme(clsDelphiProgramer programer)//重载方法,用Delphi写代码
    {
        programer.WriteCode();
    }

    static void Main(string[] args)
    {
        Program proj = new Program();
        //如果需要用VB写代码
        clsVBProgramer programer1 = new clsVBProgramer();
        proj.WritePrograme(programer1);
        //如果需要用Delphi写代码
        clsDelphiProgramer programer2 = new clsDelphiProgramer();
        proj.WritePrograme(programer2);
    }
}

(2)用接口

interface IProgramer
{
    void WriteCode();
}

class clsVBProgramer : IProgramer
{
    public void WriteCode()
    {
        Console.WriteLine("用VB写程序的程序员");
    }
}

class clsDelphiProgramer : IProgramer
{
    public void WriteCode()
    {
        Console.WriteLine("用Delphi写程序的程序员");
    }
}

class Program
{
    public void WritePrograme(IProgramer programer)
    {
        programer.WriteCode();
    }

    static void Main(string[] args)
    {
        Program prog = new Program();
        IProgramer programer;
        programer = new clsVBProgramer();
        prog.WritePrograme(programer);
        programer = new clsDelphiProgramer();
        prog.WritePrograme(programer);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值