C#~接口

版权声明:盗版必究 https://blog.csdn.net/jinxiul5/article/details/81950653

什么是接口(interface)

由于 C#中不能实现多继承,一个子类只能有一个父类,所有C#给我们提供了接口:
接口的作用:
个人理解:当多个脚本需要使用共同方法,或属性的时候,(比如游戏中的穿装备,一个玩家可以穿多件不同的装备,而每件装备的属性和功能都不相同,那么这种一对多关系的功能,就可以使用接口,每件装备一个接口,这样就可以实现一对多的功能)使用接口。
接口的特点:
<1>接口成员不能使用new ,static, abstract,virtual,override关键字修饰。
<2>接口可以多实现,一个子类可以在 继承一个父类的同时实现多个接口。但父类必须在最前面(也就是 : 之后的第一个)
<3>接口中的方法不能出现方法体,也就是接口中只能定义方法,但不能存在实例。
<4>实现接口的时候必须实现接口中的所有成员。
<5>接口中只能包含方法、属性、事件和索引的组合。
<6>接口不能实例化(创建对象),只能被实现。
<7>接口不能添加访问修饰符,默认是public(接口中的成员必须在外界被实现,所以不能更改访问修饰符)。
<8>接口用interface修饰。

接口的使用

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

namespace ConsoleApp1
{
    //定义武器接口
    interface IWeapon
    {
        //武器的名字,用属性表示
        string _Name { get; }
        //武器自带技能
        void Skill();
    }
    interface IArmor
    {
        //防具自动增加HP
        void M_Hp();
    }
    //实现以上两个接口
    public class Person : IWeapon, IArmor
    {
        //这里原本的形式是  public string _Name { get {return  "金箍棒"}; }
        //由于不能直接使用,所以用lambda 表达式来为属性返回值
        public string _Name { get => "金箍棒"; }

        //防具的方法
        public void M_Hp()
        {
            Console.WriteLine ("穿上防具加10HP" );
        }
        //武器的技能方法
        public void Skill()
        {
            Console.WriteLine ("释放技能,吻别" );
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person ( );
            p.M_Hp ( );
            p.Skill ( );
            Console.WriteLine (p._Name );
            Console.ReadKey ( );
        }
    }
}

猜你喜欢

转载自blog.csdn.net/jinxiul5/article/details/81950653