/*
 * 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 ();
        
//当多个类继承自一个接口的时候,接口中包含所有派生类的方法和属性,派生类要显式地实现所有的接口方法和属性
    }
}

相关文章:

  • 2022-01-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-04-03
  • 2021-11-20
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-23
  • 2022-02-27
相关资源
相似解决方案