黑马程序员技术交流社区

标题: 【分享】关于继承 [打印本页]

作者: 许庭洲    时间: 2012-10-9 13:53
标题: 【分享】关于继承
程序清单:
using System
class Vehicle  //定义汽车类
{
        int wheels;//公有成员:轮子个数
        protected float weight; //保护成员:重量
        public Vehicle(){;}
        public Vehicle(int w,float g){
                  wheels = w;
                  weight = g;
             }
        public void Speak(){
             Console.WriteLine("the w vehicle is speaking!");
        }
};
class Car:Vehicle //定义轿车类:从汽车类中继承
{
         int passenger;  //私有成员:乘客数
         public Car(int w,float g,int p):base(w,g)
         {
                  wheels = w;
                  weight = g;
                  passengers = p;
          }
}

Vehicle作为基类,体现了“汽车”这个实体具有的公共性质:汽车都有轮子和重量。
Car继承了Vehicle的这些性质,并且添加了自身的特性;可以搭载乘客。
C#中的继承负荷下列规则:
1. 继承是可传递的。如果C从B派生,B又从A中派生,那么C不仅继承了B中声明的成员,同样也继承了A中的成员。Object类作为所有类的基类。
2.派生类应当是对基类的扩展。派生类可以添加新的成员,但不能除去已经继承的成员定义。
3.构造函数和析构函数不能被继承。除此以外的其它成员,不论对它们定义了怎样的访问方式,都能被继承。基类中成员的访问方式只能决定派生类能否访问它们。
4.派生类如果定义了与继承而来的成员同名的新成员,就可以覆盖已继承的成员。但这并不因为这派生类删除了这些成员,只是不能再访问这些成员。
5.类可以定义虚方法,虚属性以及虚索引指示器,它的派生类能够重载这些成员,从而实现类能够重载这些成员,从而实现类可以展示多态性。


作者: 刘俊红    时间: 2012-10-10 09:43
干货很多。强烈支持。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2