广告
返回顶部
首页 > 资讯 > 精选 >C#中怎么定义接口
  • 752
分享到

C#中怎么定义接口

2023-06-17 23:06:32 752人浏览 八月长安
摘要

C#中怎么定义接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C#接口定义之声明接口声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口:public&nb

C#中怎么定义接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

C#接口定义之声明接口

声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口:

public interface IBankAccount  {  void PayIn(decimal amount);  bool Withdraw(decimal amount);   decimal Balance  {  get;  }  }

注意:接口中只能包含方法、属性、索引器和事件的声明。不允许声明成员上的修饰符,即使是pubilc都不行,因为接口成员总是公有的,也不能声明为虚拟和静态的。如果需要修饰符,***让实现类来声明。

C#接口定义之使用接口的实例:

这是书上的一个简单的例子,但足以说明接口的使用方法。

一个银行账户的接口,两个不同银行账户的实现类,都继承于这个接口。接口声明如上。下面是两个账户类:

class SaverAccount : IBankAccount  {  private decimal balance;   public decimal Balance  {  get   {  return balance;  }  }   public void PayIn(decimal amount)  {  balance += amount;  }   public bool Withdraw(decimal amount)  {  if (balance >= amount)  {  balance -= amount;  return true;  }  Console.WriteLine("Withdraw failed.");  return false;  }   public override string ToString()  {  return String.FORMat("Venus Bank Saver:Balance={0,6:C}", balance);  }  }   class GoldAccount : IBankAccount  {  private decimal balance;   public decimal Balance  {  get   {  return balance;  }  }   public void PayIn(decimal amount)  {  balance += amount;  }   public bool Withdraw(decimal amount)  {  if (balance >= amount)  {  balance -= amount;  return true;  }  Console.WriteLine("Withdraw failed.");  return false;  }   public override string ToString()  {  return String.Format(  "Jupiter Bank Saver:Balance={0,6:C}", balance);  }  }

可见,这两个实现类多继承了IBankAccount接口,因此它们必须要实现接口中的所有声明的方法。要不然,编译就会出错。让我们来测试一下,下面是测试代码:

static void Main(string[] args)  {  IBankAccount venusAccount = new SaverAccount();  IBankAccount jupiterAccount = new CurrentAccount();  venusAccount.PayIn(200);  jupiterAccount.PayIn(500);  Console.WriteLine(venusAccount.ToString());  jupiterAccount.PayIn(400);  jupiterAccount.Withdraw(500);  jupiterAccount.Withdraw(100);  Console.WriteLine(jupiterAccount.ToString());   }

请注意开头两句,我们把它们声明为IBankAccount引用的方式,而没有声明为类的引用,为什么呢?因为,这样我们就可以让它指向执行这个接口的任何类的实例了,比较灵活。但这也有个缺点,如果我们要执行不属于接口的方法,比如这里重载的ToString()方法,就要先把接口的引用强制转换成合适的类型了。

C#接口定义之接口的继承

接口也可以彼此继承,就象类的继承一样。比如我们又声明一个接口ITransferBankAccount,它继承于IBankAccount接口。

interface ITransferBankAccount : IBankAccount   {  bool TransferTo(IBankAccount destination, decimal amount);  }

在这个接口中,又新增加了一个方法TransferTo(),所以如果我们要写一个类从ITransferBankAccount继承的话,就必须要实现IBankAccount和ITransferBankAccount两个接口所有的方法声明。即:

class CurrentAccount : ITransferBankAccount  {  private decimal balance;   public decimal Balance  {  get {  return balance;  }  }   public void PayIn(decimal amount)  {  balance += amount;  }   public bool Withdraw(decimal amount)  {  if (balance >= amount)  {  balance -= amount;  return true;  }  Console.WriteLine("Withdraw failed.");  return false;  }   public override string ToString()  {  return String.Format(  "Jupiter Bank Saver:Balance={0,6:C}", balance);  }   public bool TransferTo(  IBankAccount destination, decimal amount)  {  if (Withdraw(amount))  {  destination.PayIn(amount);  return true;  }  else {   return false;  }  }  }

C#接口定义的一些总结:

C#中的接口是独立于类来定义的。这与 c++模型是对立的,在 C++中接口实际上就是抽象基类。

接口和类都可以继承多个接口。

类可以继承一个基类,接口根本不能继承类。这种模型避免了 C++的多继承问题,C++中不同基类中的实现可能出现冲突。因此也不再需要诸如虚拟继承和显式作用域这类复杂机制。C#的简化接口模型有助于加快应用程序的开发

一个接口定义一个只有抽象成员的引用类型。C#中一个接口实际所做的,仅仅只存在着方法标志,但根本就没有执行代码。这就暗示了不能实例化一个接口,只能实例化一个派生自该接口的对象。

接口可以定义方法、属性和索引。所以,对比一个类,接口的特殊性是:当定义一个类时,可以派生自多重接口,而你只能可以从仅有的一个类派生。

关于C#中怎么定义接口问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: C#中怎么定义接口

本文链接: https://www.lsjlt.com/news/294004.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#中怎么定义接口
    C#中怎么定义接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。C#接口定义之声明接口声明接口在语法上和声明抽象类完全相同,例如这里有一个银行账户的接口:public&nb...
    99+
    2023-06-17
  • C#接口怎么定义
    这篇文章主要介绍“C#接口怎么定义”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#接口怎么定义”文章能帮助大家解决问题。C# 接口(Interface)接口定义了所有类继承接口时应遵循的...
    99+
    2023-06-17
  • C#如何定义接口
    这篇文章主要为大家展示了“C#如何定义接口”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#如何定义接口”这篇文章吧。从技术上讲,接口是一组包含了函数型方法的数据结构。通过这组数据结构,客户代码...
    99+
    2023-06-17
  • C#接口的定义是什么
    这篇文章主要介绍“C#接口的定义是什么”,在日常操作中,相信很多人在C#接口的定义是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#接口的定义是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!全面...
    99+
    2023-06-17
  • Spring Boot中怎么定义接口
    Spring Boot中怎么定义接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们在 Controller 中定义接口的时候,一般都是像下面这样:@GetMapping...
    99+
    2023-06-15
  • 怎么在java中定义接口
    今天就跟大家聊聊有关怎么在java中定义接口,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一种基于Jav...
    99+
    2023-06-14
  • TypeScript怎么定义接口
    这篇文章主要讲解了“TypeScript怎么定义接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“TypeScript怎么定义接口”吧!接口的作用:接口,英文:interface,其作用可以...
    99+
    2023-06-20
  • java SPI怎么定义接口
    这篇文章主要介绍了java SPI怎么定义接口的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java SPI怎么定义接口文章都会有所收获,下面我们一起来看看吧。使用说明服务提供者提供接口的具体实现后,在jar包...
    99+
    2023-06-30
  • C#接口如何定义和继承
    这篇文章给大家分享的是有关C#接口如何定义和继承的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C#接口定义C#不支持多重继承,但是客观世界出现多重继承的情况又比较多。为了避免传统的多重继承给程序带来的复杂性等问题...
    99+
    2023-06-17
  • Java中的接口与继承怎么定义
    这篇文章主要讲解了“Java中的接口与继承怎么定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的接口与继承怎么定义”吧!假设我有很多个类,分别是Mysql.java、SQLSer...
    99+
    2023-06-17
  • golang的接口怎么定义使用
    这篇文章主要讲解了“golang的接口怎么定义使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang的接口怎么定义使用”吧!在golang中,接口是一种类型,是用来将对方法进行一个收...
    99+
    2023-07-04
  • java接口怎么定义与实现
    今天小编给大家分享一下java接口怎么定义与实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。本教程操作环境:windows...
    99+
    2023-06-30
  • java中如何定义接口
    这期内容当中小编将会给大家带来有关java中如何定义接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式...
    99+
    2023-06-14
  • Spring Data JPA怎么自定义Repository接口
    本篇内容主要讲解“Spring Data JPA怎么自定义Repository接口”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring Data J...
    99+
    2023-06-30
  • typeScript的interface接口怎么定义使用
    这篇“typeScript的interface接口怎么定义使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“typeScri...
    99+
    2023-06-29
  • java接口的修饰符怎么定义
    这篇文章主要介绍了java接口的修饰符怎么定义的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java接口的修饰符怎么定义文章都会有所收获,下面我们一起来看看吧。java接口的修饰符可以是abstract和fin...
    99+
    2023-07-04
  • java怎么自定义函数式接口
    这篇文章给大家分享的是有关java怎么自定义函数式接口的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、说明只包含抽象方法的界面,称为函数界面。可以通过Lambda表达式创建该界面的对象。如果Lambda表达式抛...
    99+
    2023-06-15
  • Go语言接口类型怎么定义
    今天小编给大家分享一下Go语言接口类型怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口接口是用来定义行为的类型,定...
    99+
    2023-07-05
  • C++中怎么调用C接口
    本篇文章为大家展示了C++中怎么调用C接口,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++如何调用C接口首先提供一个C接口:#include"test.h" voi...
    99+
    2023-06-16
  • python接口的定义
    什么是接口 ?接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功能。个人的理解,多用于协作开发时,有不同的人在...
    99+
    2023-01-31
    接口 定义 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作