接口定义为所有继承该接口的类都应遵循的语法约定。该接口定义了语法契约的“什么”部分,派生类定义了语法契约的“如何”部分。
让我们看一个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