面向对象的继承

面向对象编程是我们整个编程生涯的一个不可缺少的一部分,在所有编程语言中,javascript是一个非常特殊的存在,是一个既面向对象又面向过程的神奇的语言,这这里我要高呼一声:js牛逼!!!

在面向对象中最重要的就是两大核心:类和对象
在面向对象的三大特点就是封装,继承跟多态!

下面我们从代码的具体实例来详细解读:
面向对象的继承
这里我们创建了一个类,他们共有的属性是姓名,性别,学号.我们分别用name,sex跟num来指代,作为参数!一个方法(行为)叫做study
面向对象的继承
这里我们创建了一个大学生类,我们有一个需求:要求大学生类中和高中生类中有相同的属性,我们要继承高中生类的属性.
在这里我们有两种方法在构造函数的结构体中:call和apply方法
1.类对象1.call(类对象2,参数1,参数2,参数3…)将参数传入形参中,以this进行指代
2.类对象1.apply(类对象2,[参数1,参数2,参数3…])在这个方法中唯一区别是参数用数组进行书写,它的作用跟上一个作用一样的,只是写法不同而已

在继承中,子类继承父类,但是我们又生成一个疑问?那么父类的原型中的属性我们是否可以一块继承了呢?当然这里的答案肯定是否定的!
下面我们就针对子类继承父类原型进行描述:
面向对象的继承

我们给高中生这个类的原型添加了属性分数(score)跟方法playGame
可以用 子类.prototype = new 父类;
这里可以理解为new 一个新的父类,将之赋给子类的原型之中,但是这行代码一定要注意:原型继承一定要放在创建子类对象之前,因为执行顺序的问题,若放在之后的话子类找不到父类原型就会报错
这样我们就可以继承父类原型啦!!!

还要注意一点:继承类似继承遗产一般,我不光可以用继承的钱,还可以自己创造财富,进行使用!也就是说,我们可以调用继承父类的属性跟方法,我们还可以自己创建属于子类的独特属性方法进行调用!!!