接口定义为所有继承该接口的类都应遵循的语法约定。该接口定义了语法契约的“什么”部分,派生类定义了语法契约的“如何”部分。
让我们看一个C#接口的例子。
using System.Collections.Generic; using System.Linq; using System.Text; using System; namespace InterfaceApplication { public interface ITransactions { //接口成员 void showTransaction(); double getAmount(); } public class Transaction : ITransactions { private string tCode; private string date; private double amount; public Transaction() { tCode = " "; date = " "; amount = 0.0; } public Transaction(string c, string d, double a) { tCode = c; date = d; amount = a; } public double getAmount() { return amount; } public void showTransaction() { Console.WriteLine("Transaction: {0}", tCode); Console.WriteLine("Date: {0}", date); Console.WriteLine("Amount: {0}", getAmount()); } } class Tester { static void Main(string[] args) { Transaction t1 = new Transaction("001", "8/10/2012", 78900.00); Transaction t2 = new Transaction("002", "9/10/2012", 451900.00); t1.showTransaction(); t2.showTransaction(); Console.ReadKey(); } } }
输出结果
Transaction: 001 Date: 8/10/2012 Amount: 78900 Transaction: 002 Date: 9/10/2012 Amount: 451900
继承使我们可以用另一个类来定义一个类,这使创建和维护应用程序变得更加容易。这也提供了重用代码功能并加快实现时间的机会。
继承的思想实现了IS-A关系。例如,哺乳动物IS A是动物,狗IS-A是哺乳动物,因此也是狗IS-A动物,依此类推。
下面的示例显示了如何在C#中使用继承。
using System; namespace InheritanceApplication { class Shape { public void setWidth(int w) { width = w; } public void setHeight(int h) { height = h; } protected int width; protected int height; } //派生类 class Rectangle: Shape { public int getArea() { return (width * height); } } class RectangleTester { static void Main(string[] args) { Rectangle Rect = new Rectangle(); Rect.setWidth(5); Rect.setHeight(7); //打印对象的区域。 Console.WriteLine("Total area: {0}", Rect.getArea()); Console.ReadKey(); } } }
输出结果
Total area: 35