一.定义
1、接口描述的是可属于任何类或结构的一组功能,所以继承接口的类或结构必须实现接口中声明的成员;(结构可实现接口)
2、interface关键字进行定义接口;
3、接口只包含 属性、方法、事件、索引器;
4、接口不能实例化。
二.、疑问
接口内部方法只有方法名我们为什么要继承这个接口?作用是什么?
继承接口还必须实现接口声明的方法。
三 、举个例子解答上述疑问
读书馆借书例子,新建读书馆 目前为止只进货了两类书籍 python 和 C。
建一个书类接口
interface IBooks
{
string Name { get; }
void LoanOut(string data);
void GiveBack(string data);
}
建立 python 这类书
class python : IBooks
{
private string name = "python";
public string Name
{
get { return name; }
}
public void LoanOut(string data)
{
}
public void GiveBack(string data)
{
}
建立 C 这类书
class C : IBooks
{
private string name = "C";
public string Name
{
get { return name; }
}
public void LoanOut(string data)
{
}
public void GiveBack(string data)
{
}
}
书类的方法未写实际内容,比如需要将书借出的时间记录在数据库不同的数据表。
书类接口使用
class Program
{
// 记录已借出的书籍名称
private static List<string> booksName = new List<string>();
static void Main(string[] args)
{
IBooks book;
book = new python();
LoanOut(book);
book = new C();
LoanOut(book);
}
/// 添加新书籍时此方法不需要修改
public static void LoanOut(IBooks name)
{
// 获取当前日期
string data = DateTime.Now.ToLongDateString().ToString();
name.LoanOut(data);
booksName.Add(name.Name);
}
}
上面的代码是已经开发完的项目,
假如图书馆扩大又新增加 C#、C++ 这两类书籍,
这时我们只需要添加 C# 和 C++ 这两个类都继承书类接口即可。