美文网首页
C#——关于接口interface

C#——关于接口interface

作者: 一个有味道的名字 | 来源:发表于2017-03-20 15:24 被阅读100次

关键字 interface 接口,很多高级面向对象编程语言都有接口这一个知识点。
这里记录一下关于接口的一些东西:接口是一种规范,
只要一个类继承了一个接口,那么这个类就必须要实现该接口中的所有成员
对于接口本身而言:
1、接口不能被实例化
2、接口中的成员不能被访问修饰符给标记,默认情况下都是public
3、接口可以去继承接口,并且可以继承多个接口,但是在继承接口的时候,不能去实现被继承接口中所定义的方法、属性、索引器以及事件
4、接口不能继承类
5、接口名字一般都是以 I 开头
6、接口中只能有方法、属性、索引器以及事件,而且只能定义,不能实现
7、接口成员会自动成为公共成员,不能包含任何访问修饰符。 成员也不能是静态成员

对于类继承接口而言:
1、如果一个类继承了接口A,而接口A又继承了接口B,那么这个类就需要实现接口A和接口B中所有的成员
2、一个类如果继承了另一个类,并且又继承了一个接口,在语法上,父类的名称要写在接口前面 比如: class A:B,IC{}
3、当实现继承的接口中的方法时,不能使用override关键字,这并不是重写该方法,而是实现该方法
4、如果基类实现接口,则从基类派生的任何类都会继承该实现,但是派生类可以重新实现接口,不用继承来的实现
5、如果一个类继承两个接口,而两个接口中有相同名称的方法,或者有相同名称的却一个是方法,一个是属性, 这个时候,这个类如果要实现这两个接口,就需要显示接口实现,也就是接口名加上点运算符,比如:interface IA
{
void print();
}
interface IB
{
void print();
}
public class Z:IA,IB
{
public void IA.print(){
Console.WriteLine("this is IA");
}
public void IB.print()
{
Console.WriteLine("this is IB");
}
}

还记得C#的里氏转换原则么?我们可以用这个原则显示实现接口成员也就是说,虽然我们不能直接创建接口的实例,但是我们可以让使用继承了接口的类来模拟创建接口的实例比如:
interface IDimensions
{
float getLength();
float getWidth();
}

class Box : IDimensions
{
float lengthInches;
float widthInches;
Box(float length, float width)
{
lengthInches = length;
widthInches = width;
}
float IDimensions.getLength()
{
return lengthInches;
}
float IDimensions.getWidth()
{
return widthInches;
}
static void Main()
{
Box box1 = new Box(30.0f, 20.0f);
IDimensions dimensions = (IDimensions)box1;//强转
//或者我们可以这样: IDimensions dimensions = new Box(30.0f,20.0f);
System.Console.WriteLine("Length: {0}", dimensions.getLength());
System.Console.WriteLine("Width: {0}", dimensions.getWidth());
}
}当然,这里只是实现了关于接口的方法,还有比如说,属性,索引器,以及事件都没实现,网上的例子很多,这里就不记录了。最后给msdn上的传送门:https://msdn.microsoft.com/zh-cn/library/ms173156.aspx ;

相关文章

  • C#——关于接口interface

    关键字 interface 接口,很多高级面向对象编程语言都有接口这一个知识点。这里记录一下关于接口的一些东西:接...

  • c# interface接口

    1 接口就是一种规范 协议 约定好某种规范就可以使用通用的代码 2 定义了一组具有各种功能的方法(只有一种声明,但...

  • C# 接口(interface)

    接口包含类或结构体可以实现的一组相关功能的定义。 实现接口的任何类或结构体都必须实现其所有成员。 接口无法实例化,...

  • C#之interface(接口)

    定义: 接口是指定一组函数成员而不实现成员的引用类型,其他类型-类和接口可以实现接口。 接口是一个引用类型,通过接...

  • c# interface 接口 笔记

    文末有“实战代码” 接口表示一种能力A.做这项工作需要一个钳工(木匠/程序员)钳工是一种“能力”,不关心具体是谁B...

  • 接口

    interface 接口 implements 类实现接口 public interface 接口名{ 接口的成员...

  • 学习TypeScript 接口

    TypeScript 接口定义 interface interface_name {} 实例 联合类型和接口 接口...

  • intrface实现分析

    前言 关于interface 接口(interface)代表一种“约定”或“协议”,是多个方法声明的集合。允许在非...

  • java萌新入门之事件监听

    1.接口 1.1 接口的定义 定义接口的关键字:interface 格式: public interface 接口...

  • 2020-07-23(接口)

    1,接口特点 * a:接口用关键字interface表示, interface 接口名 {} * b:类实现接口用...

网友评论

      本文标题:C#——关于接口interface

      本文链接:https://www.haomeiwen.com/subject/lfpbnttx.html