C# 接口例题

举报
陈言必行 发表于 2021/08/13 23:08:57 2021/08/13
【摘要】 希望通过此例题可以帮助你更好的理解接口的作用 我们创建一个银行接口,有存钱,取钱方法,还有账号余额属性,,,然后实现这个接口,,, using System; namespace InterfaceDemo{ /// <summary> /// 定义一个银行接口 /// </summary> interface IBankAccount { /...

希望通过此例题可以帮助你更好的理解接口的作用

我们创建一个银行接口,有存钱,取钱方法,还有账号余额属性,,,然后实现这个接口,,,


  
  1. using System;
  2. namespace InterfaceDemo
  3. {
  4. /// <summary>
  5. /// 定义一个银行接口
  6. /// </summary>
  7. interface IBankAccount
  8. {
  9. //存款
  10. void PayIn(decimal amout);
  11. //取款
  12. bool WithShowMySelf(decimal amout);
  13. //属性:账户余额
  14. decimal Balance { get; }
  15. }
  16. /// <summary>
  17. /// 银行账户,实现接口
  18. /// </summary>
  19. class SaverAccount : IBankAccount
  20. {
  21. private decimal balance; //私有化余额
  22. public decimal Balance //只读金钱属性
  23. {
  24. get
  25. {
  26. return balance;
  27. }
  28. }
  29. public void PayIn(decimal amout) //存钱
  30. {
  31. balance += amout;
  32. }
  33. public bool WithShowMySelf(decimal amout)//取钱
  34. {
  35. if(balance >= amout)
  36. {
  37. balance -= amout;
  38. return true;
  39. }
  40. else
  41. {
  42. Console.WriteLine("银行余额不足,取款失败");
  43. return false;
  44. }
  45. }
  46. }
  47. class Program
  48. {
  49. static void Main(string[] args)
  50. {
  51. IBankAccount myAccount = new SaverAccount();
  52. myAccount.PayIn(1000);
  53. myAccount.WithShowMySelf(200);
  54. Console.WriteLine("余额:{0}",myAccount.Balance);
  55. Console.Read();
  56. }
  57. }
  58. }


  
  1. /// <summary>
  2. ///需要使用转账功能的接口
  3. /// </summary>
  4. interface ItranBack : IBankAccount
  5. {
  6. //继承的基础上,添加转账的方法
  7. bool TransferTo(IBankAccount destination, decimal amount);
  8. }
  9. class Transfer : ItranBack
  10. {
  11. private decimal balance; //私有化余额
  12. public decimal Balance //只读金钱属性
  13. {
  14. get
  15. {
  16. return balance;
  17. }
  18. }
  19. public void PayIn(decimal amout) //存钱
  20. {
  21. balance += amout;
  22. }
  23. /// <summary>
  24. /// 转账方法
  25. /// </summary>
  26. /// <param name="destination">转账的人的账号</param>
  27. /// <param name="amount">转账金额</param>
  28. /// <returns></returns>
  29. public bool TransferTo(IBankAccount destination, decimal amount)
  30. {
  31. bool result = WithShowMySelf(amount);
  32. if(result == true)
  33. {
  34. destination.PayIn(amount);
  35. }
  36. return result;
  37. }
  38. public bool WithShowMySelf(decimal amout)//取钱
  39. {
  40. if (balance >= amout)
  41. {
  42. balance -= amout;
  43. return true;
  44. }
  45. else
  46. {
  47. Console.WriteLine("银行余额不足,取款失败");
  48. return false;
  49. }
  50. }
  51. }
  52. class Program
  53. {
  54. static void Main(string[] args)
  55. {
  56. //创建两个账号
  57. IBankAccount myAccount = new SaverAccount();
  58. ItranBack yourAccount = new Transfer();
  59. //可进行 存钱,取钱,,一系列操作,
  60. myAccount.WithShowMySelf(1000);
  61. myAccount.PayIn(1000);
  62. yourAccount.PayIn(100);
  63. Console.WriteLine("转账前:我卡里的余额:{0}", myAccount.Balance);
  64. Console.WriteLine("转账前:你卡里的余额:{0}", yourAccount.Balance);
  65. yourAccount.TransferTo(myAccount, 500); //转账
  66. Console.WriteLine("转账后:我卡里的余额:{0}", myAccount.Balance);
  67. Console.WriteLine("转账后:你卡里的余额:{0}", yourAccount.Balance);
  68. Console.Read();
  69. }
  70. }
  71. }


文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

原文链接:czhenya.blog.csdn.net/article/details/77870495

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。