首页 > 编程语言 >C#接口

C#接口

时间:2023-04-08 15:13:35浏览次数:31  
标签:MethodToImplement C# void 接口 实现 InterfaceImplementer IMyInterface

C# 接口(Interface)

接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。

接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。

接口使得实现接口的类或结构在形式上保持一致。

抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。

接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。

抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。


定义接口: MyInterface.cs

接口使用 interface 关键字声明,它与类的声明类似。接口声明默认是 public 的。下面是一个接口声明的实例:

interface IMyInterface
{
    void MethodToImplement();
}

以上代码定义了接口 IMyInterface。通常接口命令以 I 字母开头,这个接口只有一个方法 MethodToImplement(),没有参数和返回值,当然我们可以按照需求设置参数和返回值。

值得注意的是,该方法并没有具体的实现。

接下来我们来实现以上接口:InterfaceImplementer.cs

实例

using System;

interface IMyInterface
{
        // 接口成员
    void MethodToImplement();
}

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }
}

InterfaceImplementer 类实现了 IMyInterface 接口,接口的实现与类的继承语法格式类似:

class InterfaceImplementer : IMyInterface

继承接口后,我们需要实现接口的方法 MethodToImplement() , 方法名必须与接口定义的方法名一致。


接口继承: InterfaceInheritance.cs

以下实例定义了两个接口 IMyInterface 和 IParentInterface。

如果一个接口继承其他接口,那么实现类或结构就需要实现所有接口的成员。

以下实例 IMyInterface 继承了 IParentInterface 接口,因此接口实现类必须实现 MethodToImplement() 和 ParentInterfaceMethod() 方法:

实例

using System;

interface IParentInterface
{
    void ParentInterfaceMethod();
}

interface IMyInterface : IParentInterface
{
    void MethodToImplement();
}

class InterfaceImplementer : IMyInterface
{
    static void Main()
    {
        InterfaceImplementer iImp = new InterfaceImplementer();
        iImp.MethodToImplement();
        iImp.ParentInterfaceMethod();
    }

    public void MethodToImplement()
    {
        Console.WriteLine("MethodToImplement() called.");
    }

    public void ParentInterfaceMethod()
    {
        Console.WriteLine("ParentInterfaceMethod() called.");
    }
}

标签:MethodToImplement,C#,void,接口,实现,InterfaceImplementer,IMyInterface
From: https://www.cnblogs.com/HomeSapiens/p/17298579.html

相关文章

  • C#抽象类和接口的异同
    一、接口接口是指对协定进行定义的引用类型,其他类型实现接口,以保证它们支持某些操作。接口指定必须由类提供的成员或实现它的其他接口。与类相似,接口可以包含方法、属性、索引器和事件作为成员。1、接口存在的意义是为了实现多态;2、接口中只能包含方法(属性、事件、索引);3、接......
  • 利用Visual Studio新建一个C# Web项目
    首先就是要下载VisualStudio,具体可以登录官网查看下载教程。首次打开VisualStudio,就会显示新建的页面,若是使用过的则根据以下操作进行: 以下界面则与新使用的新建界面一致:选择ASP.NETWeb,点击下一步填写项目名称,选择项目存放的位置,选择框架,点击创建 在这里选择一个空的......
  • C++primer第四章表达式
    4.1 基础4.1.1 基本概念当一个对象作为右值时,用的是对象的值。当一个对象作为左值时,用的是对象的身份(在内存中的位置)。如果表达式的求值结果是左值,decltype作用于该表达式得到一个引用类型。4.1.2 优先级与结合律括号优先级比较高。在第四章结尾处附上了......
  • Leetcode(剑指offer专项训练)——DFS/BFS专项(1)
    计算除法题目给定一个变量对数组equations和一个实数值数组values作为已知条件,其中equations[i]=[Ai,Bi]和values[i]共同表示等式Ai/Bi=values[i]。每个Ai或Bi是一个表示单个变量的字符串。另有一些以数组queries表示的问题,其中queries[j]=[Cj,Dj]......
  • 在 PostgreSQL 中使用 EXCLUDE 值进行 Upsert(重复更新时插入、合并)
    上次,我们读到了如何在PostgreSQL中使用 UPSERT。在快速回顾中,UPSERT 是 INSERTONDUPLICATEUPDATE 的缩写,如果它们与以前的条目不匹配,则倾向于将 INSERT 值插入表中。如果有,它们会自动更新。PostgreSQL中的 EXCLUDED 是什么EXCLUDED 是DBMS给一个特殊表的名称,......
  • 迁移学习(SPI)《Semi-Supervised Domain Adaptation by Similarity based Pseudo-label
    论文信息论文标题:Semi-SupervisedDomainAdaptationbySimilaritybasedPseudo-labelInjection论文作者:AbhayRawat, IshaDua, SauravGupta, RahulTallamraju 论文来源:PublishedinECCVWorkshops5September2022论文地址:download 论文代码:download视屏讲解:click......
  • Spring Cloud Consul简介
    SpringCloudConsul通过自动配置和绑定到SpringEnvironment和其他Spring编程模型习惯用法,为SpringBoot应用程序提供Consul集成。通过一些简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用Hashicorp的Consul构建大型分布式系统。提供的模式包括服务发现、分布式配置和......
  • cxLookAndFeelController1控件换肤(08)
    cxLookAndFeelController1控件,只是对设计窗口的控件进行换肤,不对Form标题栏进行换肤,且在设计时,即可立即看到效果。 ......
  • atomic原子类
    原子类介绍java.util.concurrent.atomicjava并发包下的类,用于多线程情况下保证线程安全的API基本类型原子类AtomicInteger数组类型原子类AtomicIntegerArray引用类型原子类AtomicReference对象的属性修改原子类AtomicIntegerFieldUpdate原子操作增......
  • Synchronized锁
    synchronized由对象头中的对象标志根据锁标志位的不同而被复用以及锁升级策略能用无锁就不要用锁,能锁代码块就不锁整个方法,能用对象锁就不用类锁.尽可能让锁的粒度更小,以提高并发效率每个对象\类都是一把锁,底层是Monitor锁本质是依赖于操作系统的Mutex......