美文网首页
7.类、继承、抽象类

7.类、继承、抽象类

作者: 我的昵称好听吗 | 来源:发表于2019-02-03 15:31 被阅读0次
    • es5 的实例方法及静态方法
    image.png
    • ts 设置constructor中的属性值类型,如下,设置sex属性为string类型;
    class Permition {
        public sex: string;
        constructor (name:number){
            this.sex = String(name);
        }
    }
    let per = new Permition(123);
    
    class Permition {
        public sex: string;
        static age: number = 12;
        constructor (name:number){
            this.sex = String(name);
        }
        work (){
    
        }
        static print(){
            console.log(this.sex);  // undefined,静态方法不能调用类的属性
            console.log('静态',Permition.age); // 可以获取到静态属性
        }
    }
    // let per = new Permition(123);
    Permition.print();
    
    // 编译后的
    var Permition = /** @class */ (function () {
        function Permition(name) {
            this.sex = String(name);
        }
        Permition.prototype.work = function () {
        };
        Permition.print = function () {
            console.log(this.sex); // undefined,静态方法不能调用类的属性
            console.log('静态', Permition.age); // 可以获取到静态属性
        };
        Permition.age = 12;
        return Permition;
    }());
    // let per = new Permition(123);
    Permition.print();
    
    
    • 抽象类
    //typescript中的抽象类:它是提供其他类继承的基类,不能直接被实例化。
    
    //用abstract关键字定义抽象类和抽象方法,抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。
    
    // abstract抽象方法只能放在抽象类里面
    
    // 抽象类和抽象方法用来定义标准 。   标准:Animal 这个类要求它的子类必须包含eat方法
    
    abstract class Animal{
        public name:string;
        constructor(name:string){
            this.name=name;
        }
        abstract eat():any;  //抽象方法不包含具体实现并且必须在派生类中实现。
        run(){
            console.log('其他方法可以不实现')
        }
    }
    
    // var a=new Animal() /*错误的写法*/
     
    class Dog extends Animal{
        //抽象类的子类必须实现抽象类里面的抽象方法
        constructor(name:any){
            super(name)
        }
        eat(){
            console.log(this.name+'吃粮食')
        }
    }
    
    var d=new Dog('小花花');
    d.eat();
    

    相关文章

      网友评论

          本文标题:7.类、继承、抽象类

          本文链接:https://www.haomeiwen.com/subject/guwysqtx.html