C#—接口、多态

接口:

  • 定义:interface关键字,接口中可以有属性、方法
  • 接口的名称通常以“I”开头,如IFly、IList
  • 如果一个类即继承了类又实现了接口,那么类必须写在接口前面。一个类只能继承一个父类,但可以实现多个接口。

接口语法:

  • 完全抽象的一种约定
  • 接口就是用来实现的
  • 接口只有方法、属性、索引和事件的声明
[访问修饰符] interface 接口名
{
	//接口成员定义
}
interface IfFly
{
	void Ifly();
}

接口和类有什么异同

相同点

  • 接口、类和结构都可以从多个接口继承
  • 接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员
  • 接口和类都可以包含事件、索引器、方法、属性

不同点

  • 不能直接实例化接口
  • 接口不包含方法的实现
  • 接口可以多继承,类只能单继承
  • 类定义可在不同的源文件之间进行拆分

 类之间不支持多重继承,接口之间支持。类对接口叫实现,不叫继承。

抽象类和接口区别

相同点

  • 都不能被直接实例化,都可以通过继承实现其抽象方法

不同点

  • 接口支持多继承,抽象类不能实现多继承。
  • 接口只能定义行为,抽象类既可以定义行为,还可以提供实现。
  • 抽象类可以定义字段、属性、包含有实现的方法
  • 接口可以作用于值类型(Struct)和引用类型(Class),抽象类只能作用于引用类型。

建立多态几种方式

  • 用父类实现多态
  • 用抽象类实现多态
  • 用接口实现多态

 保留基类方法使用new关键字、重写方法时使用override关键字。

发布了73 篇原创文章 · 获赞 40 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44031029/article/details/105003995
今日推荐