C#接口的简单使用,银行转帐

using System;

 

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            IAccountWithTransfer accountObject1 = new ZhaoShangAccount();

            IAccount accountObject2 = new NongYeAccount();

            IAccountWithTransfer accountObject3 = new ZhaoShangAccount();

 

            accountObject1.PayIn(1000);

            accountObject2.PayIn(1000);

            accountObject3.PayIn(1000);

 

            accountObject1.Transfer(accountObject2, 200);

            accountObject1.Transfer(accountObject3, 200);

            accountObject3.Transfer(accountObject2, 500);

 

            Console.WriteLine(accountObject1.RemainMoney);

            Console.WriteLine(accountObject2.RemainMoney);

            Console.WriteLine(accountObject3.RemainMoney);

            Console.ReadKey();

        }

    }

    interface IAccount

    {

        void PayIn(decimal payMoney);

        void WithDraw(decimal drawMoney);

        decimal RemainMoney

        {

            get;

        }

    }

    interface IAccountWithTransfer : IAccount

    {

        void Transfer(IAccount targetAccount, decimal transferMoney);

    }

    /// <summary>

    /// ¨º¨ªÁa¨ºÌ?°?D?¨®

    /// </summary>

    class ZhaoShangAccount :NongYeAccount, IAccountWithTransfer

    {

        /// <summary>

        /// Áa¨º

        /// </summary>

        /// <param name="targetAccount">?À¨º¨º¡ì</param>

        /// <param name="transferMoney">e?</param>

        public void Transfer(IAccount targetAccount, decimal transferMoney)

        {

            if (RemainMoney < transferMoney)

            {

                Console.WriteLine("Fail to draw your money!");

            }

            else

            {

                WithDraw(transferMoney);

                targetAccount.PayIn(transferMoney);

            }

        }

    }

    /// <summary>

    /// ?¨º¨ªÁa¨ºÌ?°?D?¨®

    /// </summary>

    class NongYeAccount : IAccount

    {

        /// <summary>

        /// º¡ê®¨¤e?

        /// </summary>

        public decimal RemainMoney { get; private set; }

        /// <summary>

        /// ?¨º

        /// </summary>

        /// <param name="payMoney">e?</param>

        public void PayIn(decimal payMoney)

        {

            RemainMoney += payMoney;

        }

        /// <summary>

        /// ??

        /// </summary>

        /// <param name="drawMoney">e?</param>

        public void WithDraw(decimal drawMoney)

        {

            if (RemainMoney < drawMoney)

            {

                Console.WriteLine("Fail to draw your money!");

            }

            else

            {

                RemainMoney -= drawMoney;

            }

        }

    }

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值