接口 QI的实现

面向对象的最小单位是类,它封装了属性和方法,但还是繁多(类中的方法和属性繁多)。 接口对类内部的属性和方法进行分类。类继承某接口后,该类只具有继承接口中声明的属性和方法。实现类中不同接口的转换就需要用到QI(Query interface),如下面的代码实现一次QI:

using System;
using System.Collections.Generic;  (接口定义了能做什么,类定义了怎么做
using System.Text;

namespace QITest
{
    interface Ifevaritefood   //接口仅仅定义相关的方法,并不实现他们
    {
        void food();
    }
    interface Ivoice
    {
        void voice();
    }
    classCat : Ifevaritefood, Ivoice
    {
        public void food()    //实现接口的类与接口的定义严格一致
        {
            Console.WriteLine("我最爱的食物是老鼠");
        }
        public void voice()
        {
            Console.WriteLine("喵、喵、喵");
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Ivoice pVoice=new Cat();
            pVoice.voice();   //pVoice只能具有Ivoice的方法
            Ifevaritefood pFaveratefood = pVoice as Ifevaritefood;//QI的实现,从Ivoice的使用方法转到Ifevaritefood的使用方法
            pFaveratefood.food();
            Console.ReadLine();

        }
    }
}

上述代码首先定义了两个接口IfevaritefoodIvoice,里面包含一个方法,用类Cat继承了这两个接口,并赋予它自己的属性,最后是实例化。结果如图:

 

你可能感兴趣的:(String,query,Class,interface)