深圳企业网站制作企业,百度小程序开发教程,西安网站制作的公司,北京公司注册地址要求简介
官方说明#xff1a;接口定义协定。 实现该协定的任何 class 或 struct 必须提供接口中定义的成员的实现。 接口可为成员定义默认实现。 它还可以定义 static 成员#xff0c;以便提供常见功能的单个实现。 从 C# 11 开始#xff0c;接口可以定义 static abstract 或 …简介
官方说明接口定义协定。 实现该协定的任何 class 或 struct 必须提供接口中定义的成员的实现。 接口可为成员定义默认实现。 它还可以定义 static 成员以便提供常见功能的单个实现。 从 C# 11 开始接口可以定义 static abstract 或 static virtual 成员来声明实现类型必须提供声明的成员。
在C#中使用 interface 关键字来定义接口例如 public interface A{void Test() { }}
为什么使用接口
实现多态性
C#中的类只允许有一个父类但可以继承多个接口。这样一个类可以实现多个接口从而实现多重继承。这使得一个类具有多种行为增加了代码的灵活性和可扩展性。 提供契约
接口定义了一组方法的规范它规定了类应该具有的行为。通过实现接口类必须遵循接口定义的方法从而保证了代码的一致性和可靠性。 实现代码的解耦
接口将方法的定义与实现分离开来使得代码的耦合度降低。通过接口可以将代码分成多个模块每个模块只关注自己的功能从而提高了代码的可维护性和可测试性。 抽象与通用性
接口是一种用来定义程序的协议描述了某一类或结构的一组相关行为。通过接口可以更好地实现抽象和通用性使得不同的事物在同一高度具有通用及可替代性。 综上所述接口的使用有助于提高代码的可读性、可维护性、可扩展性和可复用性是软件开发中一种重要的设计模式 C#中接口的特点
1.不能定义实例字段但可以定义静态类型字段(使用关键字static)。 2.可以定义属性实例属性不能有默认初始值。静态属性可以有。 3.声明的实例方法可以有默认实现也可以没有。如果没有默认实现在其被继承的类中必须实现。如果有默认实现继承类中可以不实现编译运行不会报错。但是在构建的实例类对象中不能调用因为没有在继承类中实现。
4.可以声明定义静态方法。继承类不能直接调用。 说明接口继承与类继承不同父类中定义的方法和属性(非私有)继承的子类可以直接使用并不一定需要重写。但是从接口继承的方法和属性必须在继承类中实现才能直接使用类实例对象或类名(静态方法)直接调用接口中定义的方法和属性。 实例 public interface F{//编译报错:接口不能包含实例字段//int count;public static int staCount 5;//编译报错:接口中的实例属性不能具有初始值设定//public string Name { get; set; } 111;public string Name { get; set; }public static string Age { get; set; } string.Empty;//继承类必须实现此方法void Test1();//继承类可以不实现不会报错但是需要在继承类实例调用需要重新实现void Test2() { Console.WriteLine(Hello World!); }//编译报错必须声明主体//静态方法必须有实现哪怕是只有一对{}//static void StaTest1();//在C#11中(.net 7框架)可以使用关键字abstract, virtual//virtual static void StaTest1();static void StaTest1() { }static void StaTest2() { Console.WriteLine(静态方法); }}