zoukankan      html  css  js  c++  java
  • JavaScript 类的继承

    类的继承

    1 子承父业

    extends(继承父类的普通函数)(方法)

    class Father {
                constructor() {
                }
                money() {
                    console.log(100);    
                }
            }
            class Son extends Father {
            }
            class sunzi extends Son {
    
            }
            var yxf = new Father;
            var lbw = new Son;
            var bb = new sunzi;
            console.log(yxf.money());
            console.log(lbw.money());
            console.log(bb.money());

    super的用法

    用于访问和调用对象父类上的函数。可以调用父类的构造函数,也可以调用父类的普通函数(方法)

    class Father1 {
                constructor(x,y) {
                    this.x = x;
                    this.y = y;
                }
                sum() {
                    console.log(this.x + this.y);
                }
            }
            class Son1 extends Father1 {
                constructor(x,y){
                    super(x,y);
                }
            }
            var yxf = new  Son1(1,2);
            yxf.sum();

    super关键字调用就近原则

        <script>
            //super关键字调用父类普通函数
            class Father {
                say() {
                    return '我是爸爸';
                }
            }
            class Son extends Father {
                say() {
                //     return '我是儿子';
                console.log( super.say());
                
                }
            }
            var yxf = new Son();
            yxf.say();//返回结果:我是儿子  就近原则
            //继承中的属性或方法查找原则:就近原则
            //1.继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类;
            //2.继承中,如果子类里面没有,就去查找父类有没有如果有就用父类
            
            
        </script>

    子类继承父类,同时扩展自己的方法

    注意:子类子构造函数使用super 必须放到this的前面(必须先调用父类的构造方法 再使用子类的构造方法)父亲永远是第一位的!!!!

        <script>
            class Father {
                constructor(x,y){
                    this.x = x;
                    this.y = y;
                }
                sum() {
                    console.log(this.x + this.y);
                }
            }
            // 子类继承父类加法 同时扩展减法
            class Son  extends Father {
                constructor(x,y) {
                    //利用super调用父类的构造函数
                    //super 必须在子类this之前调用
                    super(x,y);
                    this.x = x;
                    this.y = y;
                }
                sub() {
                    console.log(this.x - this.y);
                }
            }
            var son = new Son(1,2);
            son.sum();
            son.sub();
        </script>
        <script>
            //super关键字调用父类普通函数
            class Father {
                say() {
                    return '我是爸爸';
                }
            }
            class Son extends Father {
                say() {
                //     return '我是儿子';
                console.logsuper.say());
                
                }
            }
            var yxf = new Son();
            yxf.say();//返回结果:我是儿子  就近原则
            //继承中的属性或方法查找原则:就近原则
            //1.继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类;
            //2.继承中,如果子类里面没有,就去查找父类有没有如果有就用父类
            
            
        </script>
  • 相关阅读:
    Android实战经验之图像处理及特效处理的集锦(总结版)
    Android类似于滚动的通知栏实现
    Python概览
    高效程序员的45个习惯读书笔记
    Web前台传对象字符串到后台并让后台反序列化对象字符串的方法(ASP.NET)
    发布订阅者模式之C#委托实现
    表数据复制(迁移)
    Code Smell
    Python学习过程遇到的Bug不断更新
    Resharper 7小技巧系列:导航、书签、和最近编辑
  • 原文地址:https://www.cnblogs.com/qiujie-prion/p/12989572.html
Copyright © 2011-2022 走看看