实现继承的时候,子类是必须有父类的所有属性和方法的,但子类的属性是手动添加上的,父类的方法不用手动添加到子类的方法吗?

实现继承的时候,子类是必须有父类的所有属性和方法的,但子类的属性是手动添加上的,父类的方法不用手动添加到子类的方法吗?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 父类
        function People(name, age, sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        };
        People.prototype.sayHello = function () {
            console.log('我是' + this.name + ',我今年' + this.age);
        };
        People.prototype.sleep = function () {
            console.log(this.name + '开始睡觉');
        };

        // 子类
        function Student(name, age, sex, school, id) {
            this.name = name;
            this.age = age;
            this.sex = sex;
            this.school = school;
            this.id = id;
        };
        // 实现继承
        Student.prototype = new People();
        Student.prototype.study = function () {
            console.log('我正在学习');
        };
        Student.prototype.exam = function () {
            console.log('我正在考试');
        };

        var hanmeimei = new Student('韩梅梅', 20, '女');
        hanmeimei.sayHello();
        hanmeimei.sleep();
    </script>
</body>

</html>

https://img1.sycdn.imooc.com//climg/6320766009d1900113800931.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕慕子 2022-09-14 09:36:34

同学你好, 不用手动添加,子类会继承父类的属性和方法,沿着原型链访问对应的属性和方法,祝学习愉快~

  • 提问者 张小阳_ #1

    那为什么这里的子类 手动添加了父类的属性呢?

    2022-09-14 11:17:13
  • 好帮手慕慕子 回复 提问者 张小阳_ #2

    因为这里想要实现子类实例化时,每个实例拥有不同的name等属性值,所以在子类中再次书写了一遍。

    可以测试下,子类中完全可以不写这些属性,只不过,所有子类实例继承的父类属性都是相同的了,如下:

    https://img1.sycdn.imooc.com//climg/63214cd50949582e27901578.jpg

    祝学习愉快~


    2022-09-14 11:39:18
  • 提问者 张小阳_ 回复 好帮手慕慕子 #3

    这算是重写了父类的属性吗

    2022-09-14 12:36:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师