【C#】interface接口

接口是为了实现多重继承而产生的。一个接口可以从多个基接口继承,而一个类或结构可以实现多个接口

语法格式:

访问修饰符 interface 接口名
{
    //接口成员
}

public interface IMyInterface
{
    void ShowMsg();
}

接口可包含方法、属性、事件或索引器这4种成员类型,但不能包含字段,也不能设置这些成员的具体值,即只能定义,不能赋值。

接口特性:

  • 不能直接实例化接口。
  • 接口可以包含方法、属性、事件、索引器。
  • 接口不包含方法的实现
  • 继承接口的任何非抽象类型都必须实现接口的所有成员
  • 类和结构以及接口本身都可以从多个接口继承(现在还不太明白

实现接口

接口通过类的继承来实现,一个类虽然只能有一个基类,但可以继承任意多个接口,实现接口的类必须包含该接口所有成员的实现代码,同时必须匹配指定的签名,并且必须是public的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharp_Project
{
    public interface IPerson
    {
        void Say();
    }
    class Program
    {
        static void Main(string[] args)
        {
            IPerson iPerson = new Chinese();
            iPerson.Say();
            iPerson = new American();
            iPerson.Say();
            Console.ReadLine();
        }
    }

    public class Chinese : IPerson
    {
        public void Say()
        {
            Console.WriteLine("你好");
        }
    }

    public class American : IPerson
    {
        public void Say()
        {
            Console.WriteLine("Hello!");
        }
    }
}

运行结果如下

【C#】interface接口_第1张图片

或者是这样:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CSharp_Project
{
    public interface IPerson
    {
        void Say();
    }
    class Program:IPerson
    {
        static void Main(string[] args)
        {

            IPerson say = new Program();
            say.Say();
            Console.ReadLine();
           
        }
        public void Say()
        {
            Console.WriteLine("你好");
        }
        
    }
}

 

 在这个例子中,声明了一个名为IPerson的接口,IPerson接口中有一个Say方法。接着定义了Chinese和American两个类,分别实现了IPerson接口,并实现了Say方法。

你可能感兴趣的:(C#,c#,开发语言)