zoukankan      html  css  js  c++  java
  • typescript类

    //4.1定义类
    class Person{
        name:string;
        constructor(n:string){
            this.name = n;
        }
        getName():string{
            return this.name
        }
    
        setName(name:string):void{
            this.name = name;
        }
    }
    const p = new Person('qin');
    p.setName('kai');
    
    //实现继承
    class Web extends Person{
        constructor(name:string){
            super(name)
        }
    }
    var w = new Web('li');
    w.getName()
    
    //4.2类里的修饰符(ts定义属性时给我们提供了3种修饰符)
    // public: 公有,        在类里面,,子类,类外面都可以访问
    // protected: 保护类型,  在类里面,子类可以访问,类外部不能访问;
    // private:私有,        在类里面可以访问,子类和类外面都不能访问;
    //属性如果不加修饰符,默认为公有
    
    
    
    //静态方法与实例方法
    
    // function Person2(){
    //     this.sum = function(){     //实例方法
    //         console.log(123)
    //     }
    // }
    
    // Person2.run = function(){        //静态方法
    //     console.log(234)
    // }
    // Person2.name='aah'   //静态属性
    
    // let  p2 = new Person2();
    // p2.sum();
    // Person2.run()
    class Grid {
        static origin = {x: 0, y: 0};
        calculateDistanceFromOrigin(point: {x: number; y: number;}) {
            let xDist = (point.x - Grid.origin.x);
            let yDist = (point.y - Grid.origin.y);
            return Math.sqrt(xDist * xDist + yDist * yDist) / this.scale;
        }
        constructor (public scale: number) { }
    }
    
    let grid1 = new Grid(1.0);  // 1x scale
    let grid2 = new Grid(5.0);  // 5x scale
    
    console.log(grid1.calculateDistanceFromOrigin({x: 10, y: 10}));
    console.log(grid2.calculateDistanceFromOrigin({x: 10, y: 10}));
    
    
    //多态:父类定义一个方法不去实现,让继承他的子类去实现,每一个子类有不同的表现
    //多态属于继承
    
    
    
    //抽象:抽象类和抽象方法用来定义标准,这个类要求他的子类必须包含他的方法,抽象方法不包含具体实现并且必须在派生类中实现。
    //ts中的抽象类,只是提供其他类型继承的基类,不能直接被实力化。
    abstract class Animal{  //抽象类
        public name:string;
        constructor(name:string){
            this.name = name;
        }
        abstract eat():any;
    }
    //let a = new Animal();//这时错误写法,抽象类不能被实例化。
    class Dog extends Animal{
        constructor(name:any){
            super(name)
        }
        eat(){
            console.log(this.name)
        }
    }
  • 相关阅读:
    自从学会了搭建开源网站,妈妈再也不担心我找不到web自动化学习环境啦!
    领导要我6点下班前创建1000个有效的手机号,现在5点半了!教你用random模块10分钟搞定!
    python:字符串 扩展分片:第三个限制值
    python字符串:索引和分片
    测试基础:测试用例设计策略
    测试基础:软件测试思维方式
    面试整理:python列表面试习题
    面试整理:linux
    测试的一些思考
    python ConfigParse模块中的方法
  • 原文地址:https://www.cnblogs.com/kaiqinzhang/p/12894661.html
Copyright © 2011-2022 走看看