面向对象三大特征之继承

           接下来这篇文章,小编来介绍一下面向对象的三大特征之继承

      对象的继承代表了一种“is-a”的关系,如果两个对象A和B,可以描述为“B是A”,则表明B可以继承A。‘猫是哺乳动物’,说明了猫与哺乳动物之间是一种继承与被继承的关系。实际上,继承者可以理解为是对被继承者的特殊化,因为它除了具有被继承者的特性外,还具有自己独特的个性。

      例如:父亲和儿子,两个人都是戏员,儿子唱戏的技巧都是从父亲中学习来的,但是他除了具备父亲教给他的那些技巧,还具备自己的特色和自己领悟的技巧或者是唱法。因而,在继承关系中,继承者可以完全替换被继承者,反之则不成立。所以,我们在描述继承的“is-a”关系时,是不能相互颠倒的。就例子而言,儿子可以替代父亲上台演戏,但是父亲却不能替代儿子上台演戏,因为它不具备儿子所特有的个性。

      继承定义了类如何相互关联,共享特性。继承的工作方式是,定义父类(基类)和子类(派生类),其中子类继承父类的所有特性。子类不但继承了父类的所有特性,还可以定义新的特性。

      特注:如果子类继承于父类

               1. 子类拥有父类非private的属性和功能;

               2.子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能;

               3.子类还可以以自己的方式实现父类的功能(方法重写);

父类:动物Animal类

class Animal
{
     protected string name="";
     public Animal(string name)
     {
           this.name=name;
     }
     public Animal()
     {
           this.name="无名";
     }

     protected int shoutNum=3;
     public int ShoutNum
     {
           get
           {
                  return.shoutNum;
           }
           set
           {
                  shoutNum=value;
           }
     }
}

子类:猫Cat类

class Cat:Animal
{
     public Cat() : base()
     { }
     
     public Cat(string name) : base(name)
     { }

     public string Shout()
     {
           string result="";
           for(int i=0;i<shoutNum;i++)
           { 
                result+="喵";
           }
           return "我的名字叫"+name+""+result;
     }
}

            说了那么多,继承的优点是什么呢?

       继承的优点:1.继承使得所有子类公共的部分都放在了父类,使得代码得到了共享,这就避免了重复;

                          2.继承可使得修改或扩展继承而来的实现都较为容易;

       继承好处那么多,但是也不是多多使用继承就是好的,还需要慎用。

       继承的缺点:1.父类变,则子类不得不变;

                          2.继承会破坏包装,父类实现细节暴露给子类;

      继承显然是一种类与类之间强耦合的关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 52
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值