OOP---- 继承

书接上回,讨论一下继承

 

  继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的"父亲",而这些子实体则是汽车的"孩子"。

被继承的类是基类(父类),继承者是派生类(子类)

继承是单继承,虽然在现实生活中一个儿子有爸爸妈妈,但在面向对象思想中行不通

下面是举的案例:

Code:
  1. class Father    //默认的访问修饰符是internal   
  2.    {   
  3.        private string name;   //光标停在末尾可以自动封装   
  4.   
  5.        public string Name   
  6.        {   
  7.            get { return name; }   
  8.            set { name = value; }   
  9.        }   
  10.   
  11.        private int age;   
  12.   
  13.        public int Age   
  14.        {   
  15.            get { return age; }   
  16.            set { age = value; }   
  17.        }   
  18.   
  19.        public virtual void Smoke()    //定义了吸烟的虚方法 儿子可以重写   
  20.        {   
  21.            MessageBox.Show("吸烟有害健康");   
  22.        }   
  23.    }  

下面是子类:

Code:
  1. class Son : Father   //千万不要忘了冒号后面跟父类的类名   
  2.    {   
  3.        public Son()    
  4.        {   
  5.           base.            //可以点出继承了哪些父类的属性或方法   
  6.        }   
  7.   
  8.        public override void Smoke()      //重写虚方法用到了override关键字 加空格   
  9.        {   
  10.            base.Smoke();          //重写之前   
  11.      MessageBox.Show("为了健康决不吸烟");    //重写之后   
  12.        }   
  13.    }  
 

子类可以继承父类的构造函数,但他不能实现出来

子类 实例化的时候,首先调用父类的构造函数

如果父类和子类中都写了有参的构造函数,会报“Father不包含“0”参数的构造函数”,这时候base起到重要的作用

Code:
  1.      /// <summary>   
  2.     /// 父类的带参构造函数   
  3. /// </summary>   
  4.     /// <param name="strname"></param>   
  5.      public Father(string strname)    
  6.     {   
  7.         this.name = strname;   
  8.     }  
Code:
  1.        /// <summary>   
  2.       /// 子类的构造函数   
  3. /// </summary>   
  4.     /// <param name="str"></param>   
  5.     /// <param name="Iage"></param>   
  6.     public Son(string str,int Iage):base(str)   
  7.     {   
  8.         this.Age = Iage;   
  9.     }  

实例化时,父类的对象可以装子类

Code:
  1. Father F = new Son();  

 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值