C# 接口

接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致
  • 接口描述的事可属于任何类或结构的一组相关功能,它只包含方法、属性、事件或索引器的签名,而且没有相关的实现。
  • 接口中的成员总是公用的,不能存在修饰符。
  • 实现接口的类或结构必须实现接口定义中指定的接口成员。
  • 用关键字interface来定义接口
以下为C#中IComparable接口的声明:
public interface IComparable
{
        int CompareTo(object obj);
} 



IComparable接口的定义中仅包含了一个方法CompareTo(),并且该方法没有任何支付方及实现。如果我们定义一个类来实现了IComparable接口的话,那它就必须实现CompareTo方法。
以下为实例:
interface IPerson
    {
        int Age { get; set; }
        string Name { get; set; }
    }
    interface IPrintable
    {
        void PrintInfo();
    }

    class Worker : IPerson, IPrintable
    {
#region  IPerson Members
        private int age;
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
#endregion

#region IPrintable Menbers
        public void PrintInfo()
        {
            Console.WriteLine("=======Worker.PrintInfo=======");
            Console.WriteLine("Name:{0}", name);
            Console.WriteLine("Age:{0}", age);

        }
#endregion
    }

    class Program
    {
        static void Main(string[] args)
        {
            Worker w = new Worker();
            w.Name = "John";
            w.Age = 20;
            w.PrintInfo();
            Console.ReadLine();
        }
    }


输出结果:

Worker类实现了两个接口:IPerson和IPrintable。它从IPerson接口获得了Age和Name。从IPrintable接口获得了PrintInfo()方法,并为这些继承的成员提供了实现。

接口是引用类型,可以将一个派生自接口的类转化为接口,并通过接口的引用来访问派生类的成员


C#中接口与C++的对比,以及使用C#接口应注意几个问题:

  1、C#中的接口是独立于类来定义的。这与 C++模型是对立的,在 C++中接口实际上就是抽象基类。

  2、接口和类都可以继承多个接口。

  3、类可以继承一个基类,接口根本不能继承类。这种模型避免了 C++的多继承问题,C++中不同基类中的实现可能出现冲突。因此也不再需要诸如虚拟继承和显式作用域这类复杂机制。C#的简化接口模型有助于加快应用程序的开发。

  4、一个接口定义一个只有抽象成员的引用类型。C#中一个接口实际所做的,仅仅只存在着方法标志,但根本就没有执行代码。这就暗示了不能实例化一个接口,只能实例化一个派生自该接口的对象。

  5、接口可以定义方法、属性和索引。所以,对比一个类,接口的特殊性是:当定义一个类时,可以派生自多重接口,而你只能可以从仅有的一个类派生。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值