派生类虽然由基类而来,但是有某些基类方法不想由该派生类使用。如 基类是猫,派生类是瞎猫,希望做到瞎猫对象调用基类“看方法时”能做到编译时错误提示。1,不能在基类中用密封方法,因为基类猫还要派生其他类,而这些类是希望继承“看”方法的。
2,不能在派生类用new隐藏基类方法,因为做不到编译时错误提示,只能在运行时调用了new“看”才会出现自己写的错误提示。实际问题还要复杂些,先说这么多,看有没有可能解决。

解决方案 »

  1.   

    class 猫
    {
      private 看(){}
    }
      

  2.   

    namespace nnn
    {
        class Program
        {
            public int show()
            {            string d = this.GetType().ToString();
                if (this.GetType().ToString().Contains("my"))
                {
                    // disableSee();
                       return 0;
                }
                else
                {
                    //See();
                    return 1;
                }
            }不过这样做 不太好啊  最好弄成 工厂方法        
        }
        class my : Program
        {
            static void Main()
            {            my s = new my();            Console.WriteLine(s.show().ToString()  );
                Console.Read();  
            }
            
        }}
      

  3.   

    楼上这样做不到编译时提示吧,只有运行时才会运行show
      

  4.   

    不行  
    #define
    #if 
    好像干不了