黑马程序员-接口_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 黑马程序员-接口

黑马程序员-接口

 2014/4/14 12:03:28  呆呆傻傻  博客园  我要评论(0)
  • 摘要:接口接口是完全抽象的一种约定。接口就是用来实现的。语法:[访问修饰符]interface接口名{//接口成员定义}接口只有方法、属性、索引和事件的声明接口是用来实现的,所有成员默认为publicinterfaceIWalkable{//返回类型方法名(参数列表);voidWalk();}interfaceISoundable{voidSound();}abstractclassAnimal:IWalkable,ISoundable{publicabstractvoidWalk()
  • 标签:程序 程序员 接口

接口

接口是完全抽象的一种约定。

接口就是用来实现的。

语法:

[访问修饰符] interface 接口名

{

  //接口成员定义

}

接口只有方法、属性、索引和事件的声明

接口是用来实现的,所有成员默认为public

interface IWalkable

{

  //返回类型 方法名(参数列表);

  void Walk();

}

interface ISoundable

{

  void Sound();

}

class="p0">    abstract class Animal : IWalkable, ISoundable

    {

        public abstract void Walk();

        public abstract void Sound();

    }

 

    class Person : Animal

    {

        public override void Walk()

        {

            Console.WriteLine("我是一个人,用两只脚在行走中……");

        }

 

        public override void Sound()

        {

            Console.WriteLine("我是一个人,在说话,用到是语言哦");

        }

    }

    class Teacher : Person

    {

        // 老师,没有重写父类方法

    }

    class Student : Person

    {

        public override void Sound()

        {

            Console.WriteLine("我是学生重写的Sound方法");

        }

        //public override void Walk()

        //sealed是密闭的意思,表示从这里开始不允许再被Student的子类重写了

        public sealed override void Walk()

        {

            Console.WriteLine("我是学生重写的Walk方法");

        }

    }

    class Child : Student

    {

        public override void Sound()

        {

            Console.WriteLine("这是小孩的Sound");

        }

        public new void Walk()

        {

            Console.WriteLine("小孩的Walk");

        }

    }

 

    class Cat : Animal

    {

        public override void Walk()

        {

            Console.WriteLine("猫猫走猫步,好迷人……");

        }

 

        public override void Sound()

        {

            Console.WriteLine("喵喵喵……");

        }

    }

    class Car : IWalkable

    {

        public void Walk()

        {

            Console.WriteLine("我是一辆卡车,走在大路上……");

        }

    }

    class Radio : ISoundable

    {

        public void Sound()

        {

            Console.WriteLine("小喇叭,有开始广播啦!!!");

        }

    }

 

    class Program

    {

        static void Main(string[] args)

        {

            IWalkable[] walkObjects = { new Person()

                                      , new Cat()

                                      , new Car()

                                      , new Teacher()

                                      , new Student()

                                      , new Child()};

            for (int i = 0; i < walkObjects.Length; i++)

            {

                walkObjects[i].Walk();

            }

            object obj = new Child();

            IWalkable iWalk = (IWalkable)obj;

            Child chi = (Child)obj;

            iWalk.Walk();   //我是学生重写的Walk方法

            chi.Walk();     //小孩的Walk

            //new为隐藏 over重写 隐藏看类型 重写只管新爸

            Console.WriteLine("\n----------------------\n");

            ISoundable[] soundObjects = { new Person()

                                        , new Cat()

                                        , new Radio()

                                        , new Teacher()

                                        , new Student()};

            for (int i = 0; i < soundObjects.Length; i++)

            {

                soundObjects[i].Sound();

            }

 

            Console.ReadKey();

        }

    }

发表评论
用户名: 匿名