找出下面代码中的错误,谢谢(可是我在.net环境下可以编译啊)
C#入门上的题目,可是我在.net环境下可以编译啊? 
 搞不懂。。。。。。 
 abstract   class   A 
 { 
          int   y; 
          public   virtual   int   X 
          { 
                   get{return   0;} 
          } 
          public   virtual   int   Y 
          { 
                   get{   return   y;} 
                   set{   y   =value;} 
          }    
          public   abstract   int   Z{get;set;} 
 } 
 class   B   :A 
 { 
          int   z; 
          public   override   int   X 
          { 
                   get{   return   base.X   +   1;} 
          } 
          public   override   int   Y 
          { 
                   set{   base.Y=   value    <0   ?   0:value;} 
          } 
          public   abstract   override   int   Z 
          { 
                   get{   return   z;} 
                   set{   z   =value;} 
          } 
 } 
------解决方案--------------------class B : A 
 { 
     int z; 
     public override int X 
     { 
         get { return base.X + 1; } 
     } 
     public override int Y 
     { 
         set { base.Y = value  < 0 ? 0 : value; } 
     } 
     public override int Z 
     { 
         get { return z; } 
         set { z = value; } 
     } 
 }