接口与抽象类基础学习

接口: 就是一种规范,类只要继承这个接口,就必须按照接口约定的来,具备相应的属性和方法。如招聘的JD, 不要你实际做出来什么,只要你经验和学历符合JD里面的描述。

接口存在的意义: 多态,程序的扩展性,灵活的扩展性;

最基本的接口的实现:

    class Program
    {
        static void Main(string[] args)
        {
            IFlyable btf = new ButterFly();
            btf.Fly();
            btf.Jump();
            IFlyable bird = new Bird();
            bird.Fly();
            bird.Jump();
        }
    }
    public interface IFlyable //接口一般都是以I开头的
    {
       // 接口中只能包含方法[属性,事件,索引器都是方法], 
       // 默认的访问修饰符都是Public,如果手动改写了访问修饰符,就会报错;
       // 接口中的成员不能有任何实现,就像抽象方法一样不能有实现;
        void Fly();
        void Jump();
    }
    public class ButterFly : IFlyable
    {
        public void Fly()
        {
            Console.WriteLine("butterfly is flying!");
        }
        public void Jump()
        { 
            Console.WriteLine("butterfly cannot jump!");
        }
    }
    public class Bird : IFlyable {
        public void Fly()
        {
            Console.WriteLine("Bird is flying!");
        }
        public void Jump()
        {
            Console.WriteLine("Bird is jumping!");
        }
    }

另外一个类可以继承多个接口

    // 使用抽象类和虚方法已经完全可以实现多态了,为什么还用接口;
    // 什么时候要用接口:
    // 对于无法抽象出父类的类型,定义一个接口,比如鸟和飞机都会飞,但无法抽象出父类。
    class Person
    { }
    class Student : Person, IFlyable, ICloneable
    {
        public void Fly()
        { }
        public void Jump()
        { }
        public object Clone()
        {
            return null;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值