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类,在实例化这个类后,该对象将会具有全部方法。

 


 

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

C#中 什么是接口Interface,以及如何简单使用

接口是指定一组函数成员而不实现他们的引用类型。所以只能类和结构来实现接口,在继承该接口的类里面要实现接口的所有方法。 一、 在定义接口时候要注意如下几点: 1.接口生命不能包含以下成员: 数据成员、静...
  • qq_36922335
  • qq_36922335
  • 2017年06月16日 18:59
  • 1333

C#接口和编程实例

一   接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致。   声明接口在语法上和声明抽象类完全相同,例如声明一个银行账户的接口: public interface IB...
  • bcbobo21cn
  • bcbobo21cn
  • 2015年03月31日 15:37
  • 1312

C#接口的定义、特点、实现和应用

C#接口(interface)的掌握对我们开发有什么作用呢?C#接口的使用能够使我们的程序有什么改进?那么我们首先我们来看看C#接口特点以及具体的实例使用分析: C#接口特点1:都是“虚的”不能...
  • ueszx
  • ueszx
  • 2016年04月13日 00:21
  • 1652

浅析C#中抽象类和接口的区别

文章《浅析C#中接口的重要性》中讲述了如何声明和使用接口。但是C#具有abstract关键字形成的抽象类,那么二者我们该如何选择呢!C#允许把类和函数声明为abstract。抽象类不能实例化,而抽象函...
  • wangshubo1989
  • wangshubo1989
  • 2015年09月01日 09:00
  • 3389

C#之接口定义与实现

今天我来讲一下关于oop中接口方面的知识,希望
  • u010158267
  • u010158267
  • 2014年04月04日 20:05
  • 5547

C#之接口项目

1 整体 1.1 创建项目 接口项目也是一个WEB项目。新建项目--》ASP.NET Web应用程序。 项目名称:XXX_DataHandler,“XXX”是项目编码,“_DataHandler...
  • yy228313
  • yy228313
  • 2016年02月17日 19:58
  • 973

对C#中的接口的思考(一)

思考一: C#中接口和抽象类的使用上的区别:                 ---------------YYC                 1、抽象类不能被实例化,但能拥有自己的成员字段和非抽...
  • u011390632
  • u011390632
  • 2013年12月11日 23:47
  • 2412

C#OOP之八 继承 接口和抽象类

继承 在现实生活中有所谓的“种瓜得瓜、种豆得豆”的说法,在生物学概念上就是“遗传”的概念,在面向对象中“继承”就类似于生物学中的遗传,通过继承,可以更好的实现代码的重用(复用,多次使用的意思)、增加...
  • zhangchen124
  • zhangchen124
  • 2016年04月28日 18:24
  • 3973

详解C#接口以及实现/C# 接口中不能定义字段

C#接口是什么呢?C#接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。C#接口可以从多个基接口继承,而类...
  • zzy7075
  • zzy7075
  • 2015年03月09日 09:59
  • 8645

C# 动态实现接口

Unity Framework 中的一个类, 我也是醉了 // Copyright (c) Microsoft Corporation. All rights reserved. See Licens...
  • changtianshuiyue
  • changtianshuiyue
  • 2015年04月11日 21:04
  • 3652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#接口
举报原因:
原因补充:

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