Unity开发之C#基础-多态之接口

本文详细介绍了面向对象编程中的接口概念,包括接口的定义、使用、继承和实现方式(隐式和显式)。讨论了接口与抽象类的区别,并探讨了接口间的继承性和多态性在实际编程中的应用。通过示例,解释了显式实现和隐式实现接口方法的不同以及在多态场景下的调用规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本章我们将来讲解“面向对象”编程的第三个特征:多态之接口

制作不易还请各位一键三连哦!

接口概述

随着软件的规模,复杂度及版本数量的不断增长,软件对象之间的交互越来越困难,软件接口技术也越来越为人们所重视,目前已成为面向对象技术的一个重要组成部分

接口的定义和使用

接口的定义

接口是一个比抽象类更为“抽象”的一种数据类型,它所描述的是功能契约,即“能够提供什么服务”,而不考虑与实现有关的任何因素。

在c#中 接口的关键字是“interface”,其成员只能是一般方法,属性,和索引函数 而不能有字段和构造函数

例如:
在这里插入图片描述
单靠定义一个接口 我们会感觉这跟抽象类没什么区别啊 只是修饰的关键词不一样 那么我们现在来谈论下接口和抽象类究竟有何不同

接口和抽象类

  1. 接口和抽象类都不能创建实例
  2. 接口方法和抽象方法一样没有方法体
  3. 接口方法的访问修饰符是public
  4. 从某种意义上说,可以把接口看成是只包含抽象方法的抽象类,其中每个接口方法都表示一项“服务契约”

接口之间的继承

接口之间也是可以继承的
例如:“可存取”接口IDepositDraw就是从IDrawable派生类而来,因此它继承了IDrawable的Draw方法:

在这里插入图片描述
子接口可以包含与父接口相同的方法,但此时子接口的方法可以使用关键字new来隐藏父接口的方法,而不能使用override修饰符来重载父接口的方法

在这里插入图片描述
在这里插入图片描述

接口继承的传递性

接口之间的继承同样存在传递性

例如:接口IB从接口IA类派生,而接口IC又从接口IB派生,那么接口IC也就简洁的从IA派生。不过接口不可以直接从类去派生 直接从接口派生:
在这里插入图片描述

接口的实现

类对接口的支持声明和类的继承声明相似,有时也称为类从接口继承,这种继承关系同样存在传递性:如果一个类声明支持某个接口,那么它的所有的派生类也自动继承该接口

隐式实现

通过公有成员方法来实现所支持的接口方法,这叫做对接口方法的隐式实现
在这里插入图片描述

隐式实现的调用

隐式实现可以通过类的实例来进行方法的调用,也可以隐式转换为接口在进行方法的调用

在这里插入图片描述

显式实现

方法名之前加上接口名,这就叫对接口方法的显式实现
在这里插入图片描述

显式实现的调用

显式方法不能使用任何的修饰符,那么它实际上就是类的私有成员,因此不能通过类的实例来访问,而是需要转换为接口实例访问
在这里插入图片描述

接口的多态

显式实现是对接口的方法的真正实现,而隐式实现的方法可以看作是对原接口方法的覆盖
例如:
在这里插入图片描述
在这里插入图片描述

显式实现的注意事项

显式实现明确的指出了所实现的方法来自于哪一个接口,因此方法前的接口名必须是定义方法的原始接口

public interface ITest1
{
	void Fun1();
}

public interface ITest2:ITest1
{
	void Fun2();
}

public class ClassTest:ITest2
{
	void ITest1.Fun1()//不能写成ITest2.Fun1()
	{
		
	}
	void ITest2.Fun2()
	{
		
	}
}
接口与多态总结

在显式实现与隐式实现同时存在的情况下

  1. 通过接口类型的变量名,调用的是显式实现的方法
  2. 通过对象实例,调用的是隐式实现的方法

引入接口后,能够在程序中实现比类的继承更为丰富的多态性


总结

以上就是对接口的简单介绍 面向对象编程的道理很深 同学们一开始不用不求甚解 慢慢做的项目多了写的代码多了自然而然就会明白了

下期讲解:静态类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想吃烤地瓜.

高抬小手一点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值