菜鸟学习abstract【一个类可以被继承但不能实例化,子类不需要重新定义属性】

身为菜鸟,以前很少用集成这个高级东西,基本都是public,这几天为了练习自定义视图引擎

需要定义一个实体用来序列化,这个实体包换页面的基本信息例如标题和requst的信息

于是需要写一个基类,可以被继承,但不能实例化,还可以序列化,信息都在基类定义好,子类也不需要重新定义属性

折腾了好久,才明白了问题

 

 

   ///
    abstract public class ShapesClass
    {
         public ShapesClass()
         {

         }
       

        abstract public int Area();
    
        public int x;
        public int y;
        public List<string> mylist { get; set; }
    }
  public  class Square : ShapesClass
    {
      public Square()
          : base()
      {

      }
       
        // Not providing an Area method results
        // in a compile-time error.
        public override int Area()
        {
            this.x = 1;
            this.mylist.Add("111");
            return 1;
        }
    }

===

1原来抽象类也需要定义public或其他

abstract public class ShapesClass

public class Square : ShapesClass

2属性既可以定义为抽象的也可以不定义为抽象的,若果大量的属性要在子类的使用尅定义为不抽象的

public List<string> mylist { get; set; }

3如果子类的访问范围比首相类的访问范围大,是不行的

例如父类的私有的子类是共有的,是不行的

悲伤真是汗颜

posted @ 2011-04-30 23:31  互联网Fans  阅读(1598)  评论(0编辑  收藏  举报