zoukankan      html  css  js  c++  java
  • C# 中的接口

    1、首先建立一个接口  interface IBankAccount

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Wrox.ProeCSharp
    {
        interface IBankAccount
        {
            void PayIn(decimal account);      //方法不用实现,类继承是重写  
            bool WithDraw(decimal account);  //方法不用实现,类继承是重写  
            decimal Balance { get; }    //注意是属性,不是字段
    
        }
    }

    2、分别建立两个类,这两个类都继承于接口IBankAccount

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    
    namespace Wrox.ProeCSharp.VenusBank
    {
        class VenusAccount : IBankAccount
        {
            public decimal balance;
            public void PayIn(decimal account)
            {
                balance += account;
            }
    
            public  bool WithDraw(decimal account)
            {
                if (balance >= account)
                {
                    balance -= account;
                    return true;
                }
                Console.WriteLine("WithDraw  fail!");
                return false;
            }
            public decimal Balance
            {
                get { return balance; }
            }
            public override string ToString()
            {
                return string.Format("Venus bank saver: Balance= {0,6:C}", balance);
            }
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Wrox.ProeCSharp.JupiteBank
    {
        class JupiteAccount:IBankAccount
        {
            public decimal balance;
            public void PayIn(decimal account)
            {
                balance += account;
            }
    
            public bool WithDraw(decimal account)
            {
                if (balance >= account)
                {
                    balance -= account;
                    return true;
                }
                Console.WriteLine("WithDraw  fail!");
                return false;
            }
            public decimal Balance
            {
                get { return balance; }
            }
    
            public override string ToString()
            {
                return string.Format("Gold bank saver: Balance= {0,6:C}", balance);
            }
        }
    }

    3、Main 函数实例化类,并进行测试

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Wrox.ProeCSharp.JupiteBank;
    using Wrox.ProeCSharp.VenusBank;
    namespace Wrox.ProeCSharp
    {
        class Program
        {
            static void Main(string[] args)
            {
                VenusAccount venus = new VenusAccount();
                JupiteAccount jupite = new JupiteAccount();
    
                venus.PayIn(200);
                venus.WithDraw(300);
                Console.WriteLine(venus.ToString());
    
                jupite.PayIn(600);
                jupite.WithDraw(500);
                jupite.WithDraw(100);
                Console.WriteLine(jupite.ToString());
    
                Console.ReadLine();
    
            }
        }
    }

    4、测试结果

  • 相关阅读:
    DMALL刘江峰:生鲜市场具有巨大O2O改造空间
    互联网产品经理能力体系
    Review Board——在线代码审查工具
    Java Dns Cache Manipulator
    Keepalived 双机web服务宕机检测切换系统软件
    weblogic性能调优参考
    spring的ResultSetWrappingSqlRowSet使用rs.getTimestamp取oracle数据库时分秒问题
    oracle ORA-01747(系统保留关键字)user.table.column, table.column 或列说明无效 hibernate映射oracle保留关键字
    javascript模块化编程(AMD规范的加载器)
    oracle定时运行 存储过程
  • 原文地址:https://www.cnblogs.com/wenjie0904/p/8322270.html
Copyright © 2011-2022 走看看