zoukankan      html  css  js  c++  java
  • typescript类 继承 修饰符

    //1、ts中类的定义
    
        /*
        es5:
    
            function Person(name){
    
                this.name=name;
    
                this.run=function(){
    
                    console.log(this.name)
                }
            }
    
            var p=new Person('张三');
    
            p.run()
        */
    
    
      /*
            ts中定义类:
    
    
                class Person{
    
                    name:string;   //属性  前面省略了public关键词
    
                    constructor(n:string){  //构造函数   实例化类的时候触发的方法
                        this.name=n;
                    }
    
                    run():void{
    
                        alert(this.name);
                    }
    
                }
                var p=new Person('张三');
    
                p.run()
      
      */
    
    
    
        /*
        class Person{
    
            name:string; 
    
            constructor(name:string){  //构造函数   实例化类的时候触发的方法
                this.name=name;
            }
    
            getName():string{
    
                return this.name;
            }
            setName(name:string):void{
    
                this.name=name;
            }
        }
        var p=new Person('张三');
    
        alert(p.getName());
    
    
        p.setName('李四');
    
    
        alert(p.getName());
    
    */
    
    
    
    
    
    //2、ts中实现继承  extends、 super
    
    
        // class Person{
    
        //     name:string;
    
        //     constructor(name:string){
        //         this.name=name;
        //     }
    
        //     run():string{
    
        //         return `${this.name}在运动`
        //     }
        // }
        // // var p=new Person('王五');
        // // alert(p.run())
    
    
        // class Web extends Person{
        //     constructor(name:string){
    
        //         super(name);  /*初始化父类的构造函数*/
        //     }
        // }
    
    
        // var w=new Web('李四');
        // alert(w.run());
    
    
    
    
    
    
        //ts中继承的探讨  父类的方法和子类的方法一致
    
            // class Person{
    
            //     name:string;
    
            //     constructor(name:string){
            //         this.name=name;
            //     }
    
            //     run():string{
    
            //         return `${this.name}在运动`
            //     }
            // }
            // // var p=new Person('王五');
            // // alert(p.run())
    
    
            // class Web extends Person{
            //     constructor(name:string){
    
            //         super(name);  /*初始化父类的构造函数*/
            //     }
            //     run():string{
    
            //         return `${this.name}在运动-子类`
            //     }
            //     work(){
    
            //         alert(`${this.name}在工作`)
            //     }
            // }
    
    
            // var w=new Web('李四');
            // // alert(w.run());
    
            // // w.work();
    
            // alert(w.run());
    
    
    
    
    
    
    
    
    
    // 3 类里面的修饰符  typescript里面定义属性的时候给我们提供了 三种修饰符
    
    /*
        public :公有          在当前类里面、 子类  、类外面都可以访问
        protected:保护类型    在当前类里面、子类里面可以访问 ,在类外部没法访问
        private :私有         在当前类里面可以访问,子类、类外部都没法访问
    
        属性如果不加修饰符 默认就是 公有 (public)
    
    */
    
    
    
    //public :公有          在类里面、 子类  、类外面都可以访问
    
    
                //   class Person{
    
                //         public name:string;  /*公有属性*/
    
                //         constructor(name:string){
                //             this.name=name;
                //         }
    
                //         run():string{
    
                //             return `${this.name}在运动`
                //         }
                //     }
                //     // var p=new Person('王五');
                //     // alert(p.run())
    
    
                //     class Web extends Person{
                //         constructor(name:string){
    
                //             super(name);  /*初始化父类的构造函数*/
                //         }
                //         run():string{
    
                //             return `${this.name}在运动-子类`
                //         }
                //         work(){
    
                //             alert(`${this.name}在工作`)
                //         }
                //     }
    
                //     var w=new Web('李四');
    
                //     w.work();
    
    
            //类外部访问公有属性
    
    
                    //   class Person{
    
                    //     public name:string;  /*公有属性*/
    
                    //     constructor(name:string){
                    //         this.name=name;
                    //     }
    
                    //     run():string{
    
                    //         return `${this.name}在运动`
                    //     }
                    // }
    
                    // var  p=new Person('哈哈哈');
    
                    // alert(p.name);
    
    
    
    
    
    //protected:保护类型    在类里面、子类里面可以访问 ,在类外部没法访问
    
    
                //   class Person{
    
                //         protected name:string;  /*公有属性*/
    
                //         constructor(name:string){
                //             this.name=name;
                //         }
    
                //         run():string{
    
                //             return `${this.name}在运动`
                //         }
                //     }
                    // var p=new Person('王五');
                    // alert(p.run())
    
    
                    // class Web extends Person{
                    //     constructor(name:string){
    
                    //         super(name);  /*初始化父类的构造函数*/
                    //     }                  
                    //     work(){
    
                    //         alert(`${this.name}在工作`)
                    //     }
                    // }
    
                    // var w=new Web('李四11');
    
                    // w.work();
    
                    // alert( w.run());
    
    
                    
            //类外外部没法访问保护类型的属性
    
    
                    // class Person{
    
                    //     protected name:string;  /*保护类型*/
    
                    //     constructor(name:string){
                    //         this.name=name;
                    //     }
    
                    //     run():string{
    
                    //         return `${this.name}在运动`
                    //     }
                    // }
    
                    // var  p=new Person('哈哈哈');
    
                    // alert(p.name);
    
    
    
    
    
    // private :私有        在类里面可以访问,子类、类外部都没法访问
                
    
                    // class Person{
    
                    //     private name:string;  /*私有*/
    
                    //     constructor(name:string){
                    //         this.name=name;
                    //     }
    
                    //     run():string{
    
                    //         return `${this.name}在运动`
                    //     }
                    // }
    
    
                    // class Web extends Person{
    
                    //     constructor(name:string){
                    //         super(name)
                    //     }
    
                    //     work(){
    
                    //         console.log(`${this.name}在工作`)
                    //     }
                    // }
    
    
    
        class Person{
    
            private name:string;  /*私有*/
    
            constructor(name:string){
                this.name=name;
            }
    
            run():string{
    
                return `${this.name}在运动`
            }
        }
    
        var p=new Person('哈哈哈');
    
        alert(p.run());
  • 相关阅读:
    JS优先队列排序。出队时,先找出优先级最高的元素,再按照先进先出出队。
    使用队列对数组排列,基数排序
    一个用JS数组实现的队列
    使用栈判断给定字符串是否是回文的算法
    使用js栈stack类的实现
    Bootstrap篇:弹出框和提示框效果以及代码展示
    一个漂亮的php验证码类
    jquery单选框radio绑定click事件实现和是否选中的方法
    phpQuery—基于jQuery的PHP实现
    PHP的函数-----生成随机数、日期时间函数
  • 原文地址:https://www.cnblogs.com/loaderman/p/11038636.html
Copyright © 2011-2022 走看看