news 2026/7/20 21:59:53

C#中的接口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C#中的接口

接口是行为的抽象规范,也是某些抽象行为的基类,当某个类需要实现抽象行为时,继承拥有该抽象行为的接口即可。接口属于自定义类型。对于接口中的成员,有:不包含成员变量,只包含成员方法,属性,索引器和事件;接口中的成员不能被实现,接口成员可以不必写访问修饰符,默认为public,但不能是private;

接口的声明与类类似,接口不能被实例化,但接口可以作为容器存储继承其的对象。

一个类可以继承多个接口,在类继承了某个接口以后,必须实现接口中的所有成员(均为public);某个类在继承了接口并实现了其中·的成员方法后,可以将其写为虚函数供子类改写。

接口也可以继承接口,但不需要去实现上级接口里的内容,当某各类继承该接口后,则要实现本接口继承上级接口的所有内容。

对于继承了多个接口的某类,且当继承的不同的接口里有同名方法时,类内应当显式实现这些方法,即在方法名前加上接口名. ,而在使用的时候也要利用as转化为对应的接口去调用;当然,类也可以编写同名的属于类本身的对应方法。

namespace ConsoleApp12 { interface IFly { public void Fly(); string Name { get; set; } int this[int index] { get; } event Action doSomething; } interface IWalk { void Walk(); } interface IMove : IFly, IWalk { } class Test : IMove { public int this[int index] { get { return 0; } } public string Name { get; set ; } public event Action doSomething; public void Fly(){ } public void Walk(){ } } interface IAtk { void Atk(); } interface ISuperAtk { void Atk(); } class Player : IAtk, ISuperAtk { void IAtk.Atk() { } void ISuperAtk.Atk() { } public void Atk() { } } class Animal { } class Person : Animal,IFly { public int this[int index] { get { return 0; } } public string Name { get; set; } public event Action doSomething; public void Fly() { } } class Program { static void Main(string[] args) { //接口遵从里氏替换原则 IFly f = new Person(); IMove im = new Test(); IFly ifly = new Test(); IWalk iw = new Test(); //显式实现接口的使用,分别使用继承的不同接口及自己的对应方法 Player p = new Player(); (p as IAtk).Atk(); (p as ISuperAtk).Atk(); p.Atk(); } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 21:59:32

为什么你的WPS AI排版总被退回?——资深出版人拆解37份退稿批注,锁定AI识别盲区TOP3及人工校验黄金15秒法则

更多请点击: https://kaifayun.com 第一章:为什么你的WPS AI排版总被退回?——问题本质与行业认知重构 WPS AI排版被频繁退回,表面看是格式不合规、样式错乱或标题层级混乱,实则暴露了工具能力边界与专业文档生产逻辑…

作者头像 李华
网站建设 2026/7/20 21:58:38

当代情感表达困境:从‘余生不见空‘看社交媒体时代的断联哲学

1. 从"余生不见空"看当代人的情感表达困境"余生不见空"这个短语最近在社交媒体上悄然流行,它像一面镜子,折射出当代人在亲密关系中的某种集体焦虑。我第一次注意到这个词是在一个深夜的朋友圈,一位多年好友发了张城市夜景…

作者头像 李华
网站建设 2026/7/20 21:56:51

NPU芯片技术解析与应用实战指南

1. NPU芯片技术全景解析神经处理单元(Neural Processing Unit)作为专用AI加速芯片,正在重塑计算架构的格局。与传统CPU/GPU不同,NPU采用数据流架构设计,通过脉动阵列和片上存储优化,在能效比上实现数量级提…

作者头像 李华
网站建设 2026/7/20 21:56:34

Win11下通过VMware虚拟机搭建Win7环境运行Unity 5.5.0f3全攻略

1. 项目概述:一个老Unity项目引发的“系统兼容性”连环套 最近在整理一个尘封已久的游戏Demo项目时,我遇到了一个非常典型的“历史遗留问题”连环套。项目源码明确要求使用 Unity 5.5.0f3 这个特定版本进行编译和开发。然而,我的主力开发机…

作者头像 李华
网站建设 2026/7/20 21:55:57

阿里并发编程全优笔记:Java初学进阶必刷!

说到并发编程,很多人第一反应都是:难!难是肯定的,因为并发编程涉及到的知识面太广,你想要学懂并发编程,需要提前储备大量的底层知识,这样学习过程中理解起来才不会那么困难;才能在面…

作者头像 李华
网站建设 2026/7/20 21:54:55

AI基础设施下的服务器固件安全挑战与防护实践

1. 项目概述在AI基础设施(AI-Infra)快速发展的背景下,服务器固件安全正面临前所未有的挑战。作为承载AI训练、推理等关键业务的核心硬件,现代服务器已不再是简单的计算单元,而是由BMC、BIOS、GPU、RDMA网卡等多种异构部…

作者头像 李华