从零开始的typescript 类 泛型 接口

//类
class Person {  //创建一个类
    public  name;        //属性   public公共方法也是默认方法类外部也可以访问
    protected age;       //       protected类的内部与子类可以访问到
    private weight;      //       private  私有的 内部可以访问
    //类的构造函数  只调用一次
    eat() {            //方法     默认与public相同
        console.log("i'am eating ");     //只有内部可以访问
    }
    constructor(public height:string , height2){    //和上面的差不多 不过不能省略public
        console.log("haha");
    }
}

// extends  声明继承关系   可以继承父类的所有属性与方法
    class Employee extends Person {
    constructor(name:string,code:string){
        super(name);   //super 调用父类的构造函数  子类必需要有父类
        console.log("xixi");
        this.code=code;
    }
        code:string;
        work () {
            super.eat();   //super 调用父类 其他方法
            this.doWork();
        }
        private doWork(){  //设为私有变量,就只能先eat再doWork
            console.log("im working")
        }
    }
    var e1=new Employee("name","1");   //可以获得所有继承的值
    e1.work();

    var p1=new Person();  //实例化一个类
    p1.eat();

//类的方法  主要就是class 创建一个类 然后创建属性方法  extends 用于继承 super用于调用父类函数的构造函数或者

   var  workers:Array<Person>=[];  //泛型  只能选用制定的类型
    workers[0]=new Person("zhangsan");
    workers[1]="2";
    console.log(workers);
​

// 泛型  不知道和any有啥区别  

// 接口  不同类共同特性提取出来  用interface定义
interface Animal {
    eat();
}
class Sheep implements Animal{    //implements来实现
    eat() {
        console.log("i eat grass");
    }
}
class Tiger implements  Animal{
    eat(){
        console.log("i eat meat");
    }
}

//接口

猜你喜欢

转载自blog.csdn.net/qq_38674970/article/details/82951085
今日推荐