面向对象多态之接口

来源:互联网 发布:端口在线扫描 编辑:程序博客网 时间:2024/06/06 23:50

接口就是一个规范,能力(可以实现某一个功能)。


语法:

[public ] interface I..able

{

成员;

}


接口中的成员不允许添加访问修饰符,默认就是 public   (类中默认是 private)

不允许写具有方法体的函数,不能包含字段(字段是存数据用的),可以包含自动属性

接口中只能有方法:方法、属性、索引器

 public interface IFlyable
    {
        void Fly();//不能加访问修饰符
        string Test();
        string Name//这个是自动属性,没有写私有字段
        {
            get;
            set;
        }
    }


接口是一种规范。只要一个类继承了一个接口,这个类就必须实现这个接口中的所有的成员。


为了多态,接口(抽象类,静态类)不能被实例化。

也就是说,接口不能new(不能创建对象)


接口与接口之间可以继承,并且可以多继承。

接口不能去继承一个类,而类可以继承接口。

实现接口的子类必须实现该接口的全部成员。

一个类可以同时继承一个类并且实现多个接口,如果一个子类同时继承父类A,并实现了接口IA,那么语法上A必须写在IA的前面。

 public interface IFlyable
    {
        void Fly();//不能加访问修饰符
        string Test();
        string Name//这个是自动属性,没有写私有字段
        {
            get;
            set;
        }
    }


显示实现接口就是为了解决方法的重名问题


namespace 显示实现接口
{
    class Program
    {
        static void Main(string[] args)
        {
            IFlyable fly = new Bird();
            fly.Fly();//我是接口的飞
            Bird f = new Bird();
            f.Fly();//我是类的飞
            Console.ReadKey();
        }
    }


    public class Bird:IFlyable
    {
        public void Fly()
        {
            Console.WriteLine("我是类的飞");
        }
        /// <summary>
        /// 显示实现接口,解决方法的重名问题
        /// </summary>
        void IFlyable.Fly()
        {
            Console.WriteLine("我是接口的飞");
        }
    }
    public interface IFlyable
    {
        void Fly();
    }


}






0 0
原创粉丝点击