C# 中的接口
阿新 • • 發佈:2018-01-21
[] style save wro cti ride oid ons sys
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(decimalaccount); //方法不用實現,類繼承是重寫 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、測試結果
C# 中的接口