赞
踩
在 C# 编程中,接口是一种关键的构建块,用于定义类可以实现的公共功能。它提供了一种方式来指定一组方法、属性、事件和索引器的签名,但不提供其实现。这种特性使得接口在构建灵活和可维护的系统时极为重要
- public interface IAnimal
- {
- void happy();
- //void 其他的方法签名();
- }
以下是一个简单的接口代码
- using System;
-
- namespace 接口
- {
- interface IDog//这里是为了C#代码的书写规范,前面要加上I
- {
- void Sleep();
- }
- class Event : IDog
- {
- public void Sleep()
- {
- Console.WriteLine("狗在睡觉!");
- }
- }
- internal class Program
- {
- static void Main(string[] args)
- {
- Event e = new Event();
- e.Sleep();
- Console.ReadKey();
- }
- }
- }
在此代码里面,我们也可以利用接口类型来承接一个子类型的对象
但是,接口类型是无法创建接口的实例
- using System;
-
- namespace 接口
- {
- interface IDog
- {
- void Sleep();
- }
- interface ICat
- {
- void Eat();
- }
- class Event : IDog, ICat
- {
- public void Sleep()
- {
- Console.WriteLine("狗在睡觉!");
- }
- public void Eat()
- {
- Console.WriteLine("猫在吃鱼!");
- }
- }
- internal class Program
- {
- static void Main(string[] args)
- {
- Event e = new Event();
- e.Sleep();
- e.Eat();
- Console.ReadKey();
- }
- }
- }
在这里面,我新添加了一个接口,在Event类中去实现 IDog 和 ICat 接口,在主函数里面输出
在我们子类需要继承基类和接口的时候,基类需要写在最前方,因为这是乌龟的屁股(规定)!
C# 8.0引入了接口的默认实现,允许接口中的方法有一个默认的实现,这样实现接口的类可以选择使用默认实现或者提供自己的实现。
- public interface IShape
- {
- double Area { get; }
- double Perimeter { get; }
- void Draw(); // 默认实现
- }
-
- public class Circle : IShape
- {
- public double Radius { get; set; }
-
- double IShape.Area => Math.PI * Radius * Radius;
- double IShape.Perimeter => 2 * Math.PI * Radius;
-
- public void Draw() // 重写默认实现
- {
- Console.WriteLine($"Drawing a circle with radius {Radius}");
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。