a a1=new b();  这样的语句也可以??  如果可以 , 也最好不要用。 从理解和执行方面没有半点好处

解决方案 »

  1.   

    写错了
    ((b)a1).factionb();
      

  2.   

    改动如下:
    public abstract class a  
    {  
       public abstract override  void factiona();  
    }  
    public class b:a  
    {  
       public override void factiona()  
       {  
          Console.WriteLine("This is b.factiona");  
       }  
       public void factionb()  
       {  
         Console.WriteLine("This is b.factionb");  
       }  
    }  
    public class TestClass()  
    {  
       public static void Main()  
       {  
         a a1=new b();  
         a1.factiona();  
         a1.factionb();  
         Console.WriteLine(a1.GetType());  
        }  
    }  
      

  3.   

    楼上的 兄弟,不行呀 
    C:\Inetpub\wwwroot\csharplesson\C\Class1.cs(4): “a.factiona()” : 没有找到适合的方法来重写
      

  4.   

    改动如下:
    public abstract class a  
    {  
       public abstract void factiona();  
    }  
    public class b:a  
    {  
       public override void factiona()  
       {  
          Console.WriteLine("This is b.factiona");  
       }  
       public void factionb()  
       {  
         Console.WriteLine("This is b.factionb");  
       }  
    }  
    public class TestClass()  
    {  
       public static void Main()  
       {  
         b a1=new a();  
         a1.factiona();  
         a1.factionb();  
         Console.WriteLine(a1.GetType());  
        }  
    }
      

  5.   

    以下是正确的代码:
    using System;namespace Test
    {

    public abstract class a  
    {  
    public abstract void factiona();  
    public abstract void factionb();
    }   public class b:a  
    {  
    public override void factiona()  
    {  
    Console.WriteLine("This is b.factiona");  
    }  
    public override void factionb()  
    {  
    Console.WriteLine("This is b.factionb");  
    }  
    }   public class TestClass  
    {  
    public static void Main()  
    {  
    a a1=new b();  
    a1.factiona(); 
    a1.factionb();
    Console.WriteLine(a1.GetType());  
    }   }
    }
      

  6.   

    如果abstract class a  中不包含factionb则无法调用,只有强制转化为class b 才可以。