继承

对象的继承代表了一种‘is-a’的关系,如果两个对象A和B,可以描述为‘B’是‘A’,则表明B可以继承A。

继承者还可以理解为是对被继承者的特殊化,因为它除了具备被继承者的特性外,还具备自己独有的个性。

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

如果子类继承于父类,

第一、子类拥有父类非private的属性和功能;

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

第三、子类还可以以自己的方式实现父类的功能(方法重写)。

protected表示继承时子类可以对基类有完全访问权。

    class Animal

    {

        protected string name = "";

        public Animal(string name)

        {

            this.name = name;

        }

        public Animal()

        {

            this.name = "无T名?";

        }

        protected int shoutNum = 3;

 

        public int ShoutNum

        {

            get { return shoutNum; }

            set { shoutNum = value; }

        }

    }

子类从它的父类中继承的成员有方法、属性、域、事件、索引指示器,但对于构造方法,有一些特殊,它不能被继承,只能被调用。对于调用父类的成员,可以用base关键字。

class Dog : Animal

    {

        public Dog()

            : base()

        { }

 

        public Dog(string name)

            : base(name)

        { }

 

        public override string Shout()

        {

            string result = "";

            for (int i = 0; i < shoutNum; i++)

            {

                result += "汪ª? ";

            }

            return "我¨°的Ì?名?字Á?叫D" + name + " " + result;

        }

    }

不用继承的话,如果需要修改功能,就必须在所有重复的方法中修改,代码越多,出错的可能性就越大,而继承的优点是,继承使得所有子类公共的部分都放在了父类,使得代码得到了共享,这就避免了重复,另外,继承可使得修改或扩展继承而来的实现都较为容易。

继承是有缺点的,那就是父类变,则子类不得不变。

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

当两个类之间具备‘is-a’的关系时,就可以考虑用继承了。

posted @ 2013-12-31 09:30  韩梦芫  阅读(228)  评论(0编辑  收藏  举报