/*
* Created by SharpDevelop.
* User: noo
* Date: 2009-8-19
* Time: 10:40
*
* AO中類、介面的關係,多個類繼承一個介面,ControlsMapZoomInToolClass,ControlsMapZoomOutToolClass 類繼承自ITool介面
*/
using System ;
interface ITool//工具介面,工具包含有放大,縮小,漫遊,測距等
{
void OnDblClick();//雙擊滑鼠事件
void OnMouseDown();//點擊滑鼠事件
void OnMouseMove();//移動滑鼠事件
void OnMouseUp();//放下滑鼠事件
}
class ControlsMapZoomInToolClass:ITool//放大類
{
void ITool.OnDblClick()//放大工具不支援雙擊滑鼠事件,但是這裡還是要寫一個無任何代碼的空方法
{
}
void ITool.OnMouseDown()
{
Console.WriteLine ("放大工具,按下滑鼠。");
}
void ITool.OnMouseMove()
{
Console.WriteLine ("放大工具,拖動滑鼠。");
}
void ITool.OnMouseUp()
{
Console.WriteLine ("放大工具,放下滑鼠。");
}
}
class ControlsMapMeasureToolClass:ITool
{
void ITool.OnMouseDown()
{
Console.WriteLine ("測量工具,按下滑鼠。");
}
void ITool.OnMouseMove()
{
Console.WriteLine ("測量工具,拖動滑鼠。");
}
void ITool.OnMouseUp()//放大工具不支援放下滑鼠事件,但是這裡還是要寫一個無任何代碼的空方法
{
}
void ITool.OnDblClick()
{
Console.WriteLine ("測量工具,雙擊滑鼠。");
}
}
class Test
{
static void Main()
{
Console.WriteLine ("\n選擇放大工具。\n");
ITool pZoomIn=new ControlsMapZoomInToolClass ();//執行個體化一個放大工具
pZoomIn.OnMouseDown ();
pZoomIn.OnMouseMove ();
pZoomIn.OnMouseUp ();
Console.WriteLine ("\n選擇測量工具。\n");
ITool pMeasure=new ControlsMapMeasureToolClass ();//執行個體化一個測量工具
pMeasure.OnMouseDown ();
pMeasure.OnMouseMove ();
pMeasure.OnDblClick ();
//當多個類繼承自一個介面的時候,介面中包含所有衍生類別的方法和屬性,衍生類別要顯式地實現所有的介面方法和屬性
}
}