一、继承是面向对象重要的特征。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般多特殊的过程。
二、继承概念的实现方式有三类:实现继承、接口继承和可视继承。
1、实现继承是指使用基类的属性和方法而无需额外编码的能力;
2、接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
3、可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
三、继承的特点:
第一、子类拥有父类的属性和方法;
第二、子类可以有自己新的属性和方法;
第三、子类可以重写父类的方法;
第四、可以声明父类,创建子类。
四、面向对象中使用继承的好处:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确描述共性的方法,对象的一个新类可以从现有的类中的派出,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
五、与继承有关的注意事项:
继承是单方向的,即派生类可以继承和访问基类中的成员,但基类无法访问派生类的成员。
代码如下:
<style>
div {
width: 100px;
height: 100px;
background: red;
position: absolute;
}
#box2 {
background: green;
}
#box3 {
background: blue;
}
</style>
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<script src="DragBox.js"></script>
<script>
function DragBoxText(boxId) {
// 继承 DragBox 的属性
DragBox.call(this, boxId);
}
// 继承 DragBox 的方法
DragBoxText.prototype = new DragBox();
// 修改了父亲了的方法
DragBoxText.prototype.move = function(x, y) {
DragBox.prototype.move.call(this, x, y)
this.ele.innerHTML = x + ", " + y;
}
// 让 box1 具备拖拽的能力
new DragBoxText("box1");
new DragBoxText("box2");
new DragBoxText("box3");
</script>