C#接口

原创 2012年03月27日 17:51:11

namespace _
{
    interface IPeople                            //  IPeople接口
    {
        /// <summary>
        /// 姓名
        /// </summary>
        string Name
        {
            get;
            set;
        }
        /// <summary>
        /// 性别
        /// </summary>
        string Sex
        {
            get;
            set;
        }
    }
    interface ITeacher:IPeople            //继承公共接口
    {
        /// <summary>
        /// 教学方法
        /// </summary>
        void teach();
    }
    interface IStudent:IPeople            //继承公共接口
    {
        /// <summary>
        /// 学习方法
        /// </summary>
        void study();
    }
    class Program:IPeople,ITeacher,IStudent//多接口继承
    {
        string name = "";
        string sex = "";
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
        /// <summary>
        /// 性别
        /// </summary>
        public string Sex
        {
            get
            {
                return sex;
            }
            set
            {
                sex = value;
            }
        }
        /// <summary>
        /// 教学方法
        /// </summary>
        public void teach()
        {
            Console.WriteLine(Name + " " + Sex + " 教师");
        }
        /// <summary>
        /// 学习方法
        /// </summary>
        public void study()
        {
            Console.WriteLine(Name + " " + Sex + " 学生");
        }
        static void Main(string[] args)
        {
            Program program = new Program();   //实例化类对象
            ITeacher iteacher = program;       //使用派生类对象实例化接口ITeacher   (接口不能直接实例化,需使用派生类对象实例化接口)
            iteacher.Name = "TM";
            iteacher.Sex = "男";
            iteacher.teach();
           
            IStudent istudent = program;       //使用派生类对象实例化接口IStudent  
            istudent.Name = "C#";
            istudent.Sex = "男";
            istudent.study();
        }
    }
}
接口的好处之一:使用派生类对象实例化接口ITeacher后,iteacher对象仅有Name,Sex,teach三个成员,不具有study方法。

                                使用派生类对象实例化接口Istudentr后,istudent对象仅有Name,Sex,study三个成员,不具有teach方法。

还可以继续定义类,类中可以定义自己的方法,让该类也继承接口

若没有接口,直接定义Program类,在实例化这个类后,该对象将会具有全部方法。

 


 

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)