using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
#region 介绍接口
//这个例子是一个简单的一个类继承一个接口,
//如要实现接口类中对应的成员必须是公共的、非静态的,
//并且与接口成员具有相同的名称和签名。
//并且接口的实例化不能像类那样Program program = new Program();
//其中上述程序中红色部分即为接口的实例化(使用派生类对象实例化接口)。
//1、接口的概念及声明
//接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。
//那么接口具有哪些特点呢?
//接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员(说明:如类A继承接口B,那么A中必须实现B中定义的属性,方法等)。
//不能直接实例化接口
//接口可以包含事件、索引器、方法和属性
//接口不包含方法的实现
//类和接口可以从多个接口继承
//接口自身可以继承多个接口
//在声明接口时除了Interface和接口名称是必须的,其他都是可选项。另可使用new、public、protected、intenal和private等修饰符实现接口,但接口成员必须是公共的。
//2、接口的实现与继承
//声明实现接口的类时,需要在基类列表中包含类所实现的接口的名称。
#endregion
namespace 接口_单继承_
{
//接口内不可以有字段
interface Myinterface
{
string ID { get; set; }
string Name { get; set; }
void ShowInfo();
}
//继承接口后,接口内的成员要全部实现
class Program : Myinterface
{
private string id;
public string ID
{
get { return id; }
set { id = value; }
}
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public void ShowInfo()
{
Console.WriteLine(ID +'\t'+ Name);
}
static void Main(string[] args)
{
Program p = new Program();
p.ID = "001";
p.Name = "毕毕";
p.ShowInfo();
Console.ReadKey();
}
}
}