• 显示接口成员


    如下面的IDrivable和IStreerable都声明了TurnLeft()方法

    public interface IDrivable

    {

      void TurnLeft();

    }

    public interface IStreerable

    {

      void TurnLeft();

    }

    如果声明一个类实现这两个接口,在类中必须定义两个TurnLeft()方法,如何区别这两个方法呢?答案是:必须显示声明这个方法属于哪个接口,如下例:

    1 /*
    2 Example8_7.cs illustrates an explicit interface member
    3 implementation
    4  */
    5
    6  using System;
    7
    8
    9 // define the IDrivable interface
    10 public interface IDrivable
    11 {
    12 void TurnLeft();
    13 }
    14
    15
    16 // define the ISteerable interface
    17 public interface ISteerable
    18 {
    19 void TurnLeft();
    20 }
    21
    22 // Car class implements the IMovable interface
    23 public class Car : IDrivable, ISteerable
    24 {
    25
    26 // explicitly implement the TurnLeft() method of the IDrivable interface
    27 void IDrivable.TurnLeft()
    28 {
    29 Console.WriteLine("IDrivable implementation of TurnLeft()");
    30 }
    31
    32 // implement the TurnLeft() method of the ISteerable interface
    33 public void TurnLeft()
    34 {
    35 Console.WriteLine("ISteerable implementation of TurnLeft()");
    36 }
    37
    38 }
    39
    40
    41 class Example8_7
    42 {
    43
    44 public static void Main()
    45 {
    46
    47 // create a Car object
    48 Car myCar = new Car();
    49
    50 // call myCar.TurnLeft()
    51 Console.WriteLine("Calling myCar.TurnLeft()");
    52 myCar.TurnLeft();
    53
    54 // cast myCar to IDrivable
    55 IDrivable myDrivable = myCar as IDrivable;
    56 Console.WriteLine("Calling myDrivable.TurnLeft()");
    57 myDrivable.TurnLeft();
    58
    59 // cast myCar to ISteerable
    60 ISteerable mySteerable = myCar as ISteerable;
    61 Console.WriteLine("Calling mySteerable.TurnLeft()");
    62 mySteerable.TurnLeft();
    63
    64 }
    65
    66 }
  • 相关阅读:
    Python中 sys.argv[]的用法简明解释
    Python-函数的递归调用
    第二模块闯关练习
    python项目中输出指定颜色的日志
    PyCharm 常用快捷键和设置
    time模块和datetime模块详解
    ansible模块lineinfile
    nginx日志分析
    iptables实现正向代理
    sersync2 安装,配置
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2037042.html
Copyright © 2020-2023  润新知