C#学习日记(接口)

**

C# 是一门 单继承 多接口 来实现多态的语言

**
在这里插入图片描述在这里插入图片描述
**

实现接口:

**

namespace Interface
{
    interface Ilisttable
    {
        string[] Table
        {
            get;
        }
        void func(int a,int b);
    }
    class Stu :Ilisttable
    {
        private string ID { get; set; }
        private string Name { get; set; }
        private string Major { get; set; }
        public Stu(string id , string name , string major)
        {
            this.ID = id;
            this.Name = name;
            this.Major = major;
        }
        public string[] Table
        {
            get
            {
                return new string[]
                {
                    this.ID,
                    this.Name,
                    this.Major
                };
            }
        }
        //隐式实现
        public string[] function1
        {
            get { 
            return new string[] { " 1", " 2" };
                }
        }
        //显示实现接口
        void Ilisttable.func(int c, int d)
        {
            Console.WriteLine(c + d);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Stu s1 = new Stu("123", "憨憨", "睡觉");
            string[] Array = s1.Table;
            (s1 as Ilisttable).func(1, 2);
            foreach (var item in Array)
            {
                Console.WriteLine(item);
            }
            for(int i =0;i<3; i++)
            {
                Console.WriteLine(Array[i]);
            }
            Console.ReadKey();
        }
    }
}

注意点:

1.只要public该接口方法,并且签名相同就隐式的实现了接口。
2.显示的实现要 写成 接口名.方法名 的格式。
3.若隐式实现了接口则可以用类名或者接口名实例化对象。
但是如果显示的实现了接口方法,则用类名实例化的对象调用显示实现的接口方法时,则要类型转换一下。此处为(Stu as IListtavble).func(1,2);

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值