zoukankan      html  css  js  c++  java
  • private/实现有多个相同方法的接口

    当我们在一个类型中用完全限定接口名来定义一个接口方法时,该方法将被认为是私有方法,---只在该类型中(内部)可以调用,----而不能使用类型本身的引用来调用它。
    ----但是,当我们将该类型的引用转型为一个接口时,该接口中定义的方法将可以被调用,这时它(用完全限定接口名来定义的接口方法)又成为一个公有方法。---所以,当将gp变量转型为一个IWindow时,IWindow.GetMenu方法将是唯一可以调用的方法。
    编译器按照先“完全限定接口成员”后“非完全限定接口成员”
    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace App1
    {
        
    public interface IWindow
        
    {
            Object getMenu();
        }

        
    public interface IRestaurant
        
    {
            Object getMenu();
        }

        
    public class GiuseppePizzaria : IWindow, IRestaurant
        
    {

            
    IWindow Members

            
    IRestaurant Members

            
    public Object getMenu()//该类型自身的getMenu方法,与接口无关
            {
                Console.WriteLine(
    "I'm GiuseppePizzaria's public method!");
                
    return "";
            }

        }

        
    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                GiuseppePizzaria gp 
    = new GiuseppePizzaria();
                
    object menu;
                
    //调用公有的getMenu方法.使用GiuseppePizzaria引用,
                
    //完全限定接口方法将为私有方法,因此不可能被调用.
                menu = gp.getMenu();
                
    //调用IWindow的getMenu方法。使用IWindow引用,
                
    //因此只有IWindow的getMenu()方法被调用。
                menu = ((IWindow)gp).getMenu();
                
    //调用IWindow的getMenu方法。使用IWindow引用,
                
    //因此只有IWindow的getMenu()方法被调用。
                menu = ((IRestaurant)gp).getMenu();
                Console.Read();
            }

        }

    }


  • 相关阅读:
    docker-compose
    获取时区
    maven插件
    jquery_ui_api中文
    sax xpath读取xml字符串
    Ant打包
    [转]html5音乐播放器
    javax mail网址
    vbscript调用fso
    fso查找被删除的文件
  • 原文地址:https://www.cnblogs.com/shuang/p/1007355.html
Copyright © 2011-2022 走看看