C#中接口中接口(Interface)的深入详解的深入详解
主要给大家介绍了关于C#中接口(Interface)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者
工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
定义定义
在 C# 语言中,类之间的继承关系仅支持单重继承,而接口是为了实现多重继承关系设计的。一个类能同时实现多个接口,还
能在实现接口的同时再继承其他类,并且接口之间也可以继承。无论是表示类之间的继承还是类实现接口、接口之间的继承,
都使用“:”来表示。
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派
生类应遵循的标准结构。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。
定义接口语法:定义接口语法:
interface 接口名称
{
接口成员;
}
接口命名通常以 I 字母开头,例如Itest。
接口成员,不允许使用 public、private、protected、internal 访问修饰符,不允许使用 static、virtual、abstract、sealed 修饰
符。不能定义字段,定义的方法不能包含方法体。
示例:定义一本书的接口,有id、名称name、定价price几个属性,和一个方法售卖价SalePrice()。
using System;
namespace app
{
interface IBook
{
int Id { get; set; }
string Name { get; set; }
double Price { get; set; }
double SalePrice(int discount);
}
}
实现实现
接口的实现与类的继承语法格式类似,也是重写了接口中的方法,让其有了具体的实现内容。
实现接口语法:实现接口语法:
class 类名 : 接口名
{
//类中的成员以及实现接口中的成员
}
在实现接口的成员时有两种方式,隐式实现接口成员和显式实现接口成员。隐式实现接口成员是将接口的所有成员以 public
访问修饰符修饰。显式实现接口是指在实现接口时所实现的成员名称前含有接口名称作为前缀。
下面对一本书的接口分别使用隐式实现和显式实现。
隐式实现:隐式实现:
class Book:IBook
{
// 隐式的实现接口中的属性
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
// 隐式实现接口中的方法
public double SalePrice(int discount)
{
double salePrice = Price * discount * 0.1;
return salePrice;
}
}
评论0