C#-接口

简介: 接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。接口只包含了成员的声明,在继承的类中进行实现。

接口是什么

接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。接口只包含了成员的声明,在继承的类中进行实现。

接口的特点

接口只做声明。

所有接口成员的默认访问类型都是public。

接口不能直接实例化。

必须实现接口的所有方法。

C#是单继承,利用接口可以实现多继承。

接口的声明

publicinterfaceAnimalone{        //接口方法不能用修饰符修饰voidToSpeak();
}

接口的实现

publicclassCatone : Animalone{        
publicvoidToSpeak()
    {
Console.Write("喵喵喵\r\n");
    }
}
publicclassDogone : Animalone{
publicvoidToSpeak()
    {
Console.Write("汪汪汪\r\n");
    }
}    
publicclassbirdone : Animalone{        
publicvoidToSpeak()
    {
Console.Write("喳喳喳\r\n");
    }
}

接口的继承

//接口继承//C# 单继承,使用接口可以继承多个基类publicinterfaceAnimaltwo : Animalone{        
voidEatFood();
}    
//继承子接口时,要实现所有接口的方法publicclassCattwo : Animaltwo{        
publicvoidEatFood()
    {
Console.Write("猫粮\r\n");
    }        
publicvoidToSpeak()
    {
Console.Write("喵喵喵\r\n");
    }
}

显示接口的实现

//显示接口实现interfaceAnimalThree{        
voidMove();
}
interfaceAnimalfour{        
voidMove();
}    
publicclassCat : AnimalThree, Animalfour{        
voidAnimalThree.Move()
    {
Console.Write("run\r\n");
    }        
voidAnimalfour.Move()
    {
Console.Write("swarm\r\n");
    }
}
完整代码```c#usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceTestInterface{    
//接口//定义一个接口,只能做方法声明,继承自接口的类,必须实现接口方法publicinterfaceAnimalone    {        
//接口方法不能用修饰符修饰voidToSpeak();
    }    
publicclassCatone : Animalone    {        
publicvoidToSpeak()
        {
Console.Write("喵喵喵\r\n");
        }
    }    
publicclassDogone : Animalone    {
publicvoidToSpeak()
        {
Console.Write("汪汪汪\r\n");
        }
    }
publicclassbirdone : Animalone    {
publicvoidToSpeak()
        {
Console.Write("喳喳喳\r\n");
        }
    }    
publicclasszooone    {
publicvoidSpeak(Animaloneanimals)
        {
animals.ToSpeak();
        }
    }    
//接口继承//C# 单继承,使用接口可以继承多个基类publicinterfaceAnimaltwo : Animalone    {        
voidEatFood();
    }    //继承子接口时,要实现所有接口的方法publicclassCattwo : Animaltwo    {
publicvoidEatFood()
        {
Console.Write("猫粮\r\n");
        }        
publicvoidToSpeak()
        {
Console.Write("喵喵喵\r\n");
        }
    }    
publicclasszootwo    {
publicvoidEatFood(Animaltwoanimals)
        {
animals.EatFood();
        }        
publicvoidTospeak(Animaltwoanimals)
        {
animals.ToSpeak();
        }
    }    
//显示接口实现interfaceAnimalThree    {        
voidMove();
    }
interfaceAnimalfour    {        
voidMove();
    }    
publicclassCat : AnimalThree, Animalfour    {        
voidAnimalThree.Move()
        {
Console.Write("run\r\n");
        }        
voidAnimalfour.Move()
        {
Console.Write("swarm\r\n");
        }
    }    
classProgram    {
staticvoidMain(string[] args)
        {
zooonez=newzooone();
z.Speak(newCatone());
z.Speak(newDogone());
z.Speak(newbirdone());
zootwoztwo=newzootwo();
ztwo.EatFood(newCattwo());
ztwo.Tospeak(newCattwo());
Catcat=newCat();
AnimalThreethree=cat;
three.Move();
Animalfourfour=cat;
four.Move();
Console.Read();
        }
    }
}

参考资料

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/interfaces/

C# 接口《通俗解释》

https://www.cnblogs.com/hamburger/p/4681681.html

目录
相关文章
|
1月前
|
IDE C# 开发工具
C#系列之接口介绍
C#系列之接口介绍
|
3月前
|
达摩院 Linux API
阿里达摩院MindOpt求解器V1.1新增C#接口
阿里达摩院MindOpt求解器发布最新版本V1.1,增加了C#相关API和文档。优化求解器产品是求解优化问题的专业计算软件,可广泛各个行业。阿里达摩院从2019年投入自研MindOpt优化求解器,截止目前经历27个版本的迭代,取得了多项国内和国际第一的成绩。就在上个月,2023年12月,在工信部产业发展促进中心等单位主办的首届能源电子产业创新大赛上,MindOpt获得电力用国产求解器第一名。本文将为C#开发者讲述如何下载安装MindOpt和C#案例源代码。
136 3
阿里达摩院MindOpt求解器V1.1新增C#接口
|
3月前
|
编译器 C# 开发者
C# 11.0中的新特性:覆盖默认接口方法
C# 11.0进一步增强了接口的灵活性,引入了覆盖默认接口方法的能力。这一新特性允许类在实现接口时,不仅可以提供接口中未实现的方法的具体实现,还可以覆盖接口中定义的默认方法实现。本文将详细介绍C# 11.0中接口默认方法覆盖的工作原理、使用场景及其对现有代码的影响,帮助开发者更好地理解和应用这一新功能。
|
3月前
|
安全 C# 开发者
C#中的默认接口方法:接口演化的新篇章
【1月更文挑战第11天】本文探讨了C# 8.0中引入的默认接口方法,这一特性允许在接口中定义具有默认实现的方法。文章介绍了默认接口方法的语法、使用场景,以及它们如何影响接口的设计和实现,同时讨论了默认接口方法带来的好处和潜在的陷阱。
|
7月前
|
设计模式 自然语言处理 C#
C#OOP之八 继承 接口和抽象类
C#OOP之八 继承 接口和抽象类
26 0
|
3月前
|
C# 开发者 索引
C# 11.0中的所需成员:强化接口与抽象类的约束
【1月更文挑战第24天】C# 11.0引入了所需成员(Required members)的概念,这一新特性允许在接口和抽象类中定义必须被实现的成员,包括方法、属性、索引器和事件。通过所需成员,C# 强化了对接口实现和抽象类继承的约束,提高了代码的一致性和可维护性。本文将详细探讨C# 11.0中所需成员的工作原理、使用场景及其对现有编程模式的影响。
|
9月前
|
C#
C# 接口
C# 接口
43 0
|
4月前
|
程序员 C#
C# 类实现接口(Interface) 多态 多继承
C# 类实现接口(Interface) 多态 多继承
|
6月前
|
算法 C# C++
托管C++实现C#接口崩溃的一种情况
托管C++实现C#接口崩溃的一种情况
|
6月前
|
Oracle 关系型数据库 API
C# LIS检验系统源码,接口技术:RESTful API + Http+WCF
LIS检验系统一种专门用于医院化验室的计算机系统,它致力于提高医院化验室的工作效率和检测准确率。LIS系统由多个子系统组成,包括样本管理系统、质控系统、检验结果管理系统、报告管理系统等。体系结构:Client/Server架构 SaaS模式 客户端:WPF+Windows Forms 服务端:C# +.Net 数据库:Oracle 接口技术:RESTful API + Http+WCF