uo;的所有特性!但是男人与女人却有其不同的地方,编程语言里的继承也一样,一个类A继承了另一个类B,那么类B就是类A的父类,类A就是类B的派生类,也称为子类。比如男人就是人的派生类,而人就是男人的父类。最高一级的类称为基类,想象一下就可以明白,男人继承自人,男孩继承自男人,人就是男孩的基类,男人就是男孩的父类。
题外:多重继承 这里再涉及一个多重继承的话题,但如果你仅仅是学JavaScript的话就没有必要看下去,因为JavaScript不提供多重继承,准确一点说没有一种简单而标准的方法来实现多重继承(其实是有办法实现的,只不过麻烦了一点,而且确实没有必要)。 在C++中是有多重继承的概念的,这里是讨论JavaScript,因此不打算讲,只是说说它的一点点思想以供参考。 在上边男孩的继承问题中,男孩其实不仅仅是继承自男人,还继承自孩子(有男孩子,也有女孩子)这个类,因此,它同时继承了两个类:男人与男孩,这就是所谓的多重继承。 好,这个问题打住,我们还是回归主题。 先看第一个类的定义: function A() { this.Name = "泣红亭"; alert(this.Name); }
这个类定义了一个属性Name,默认值为"泣红亭" 现在看第二个类的定义: function B() { this.Sex = "男"; alert(this.Sex); } 定义了一个属性Sex,默认值为"男" 继承的方式就是 子类.prototype = new 父类(); 现在我们来让B类继承A类: B.prototype = new A(); 运行这一段代码: var Obj = new B(); //首先打开警告窗口显示"泣红亭",再显示"男" 可以从上边的结果看出B类继承了A类,拥有了A类的属性Name,并且执行了A类的构造函数,而且A类的构造函数在B类的构造函数执行之前执行。因此我们利用这个可以实现重写父类的方法以及重设置父类某属性的默认值: function A() { this.Name = "泣红亭"; this.Show = function() { alert("这是A类的Show方法"); } alert(this.Name); } function B() { this.Name = "郑运涛"; this.Show = function() { a |