如题,本篇介绍下ts中类 、对象 、静态方法 、继承、类中成员返回修饰符等。
ts中类继承类似于传统面向对象编程语言中的继承体系 ,使用extends关键字继承,类中this表示此当前对象本身,super表父类对象。子类构造函数中第一行代码调用父类构造函数完成初始化,然后再进行子类的进一步初始化。子类中可以访问父类(public、protected)的成员属性、方法。
02_class.ts
/* * ts中类 对象 静态方法 继承 * * ts中类继承类似于传统面向对象编程语言中的继承体系 ,使用extends关键字继承, * 类中this表示此当前对象本身,super表父类对象。 * * */ //es5中类 // function Perosn(name,age){ // this.name=name; // this.age=age; // // this.sayHi=function(){ // return "hi,我的姓名是:"+this.name+",我年龄是:"+this.age; // } // } // // var p=new Perosn("张三",22); // console.log(p.sayHi()); //ts 中类 class Person{ name:string ;//实例属性 age:number;//实例属性 //构造函数 constructor(name,age){ this.name=name; this.age=age; } //实例方法 sayHi(){ return "hi,我的姓名是:"+this.name+",我年龄是:"+this.age; } //静态方法 static hello(){ console.log("hello!!"); } //静态属性 static PI:number=Math.PI; //静态方法中可以返回静态属性,,静态成员只能使用类名.静态成员的方式进行访问。 static area(r:number){ return Person.PI * r*r; } } //计算r为3的圆的面积 ,调用静态方法不需要new实例对象,直接用类名.静态方法调用即可。 console.log(Person.area(3)); //28.274333882308138 //new 对象 var p = new Person("张三", 22); //调用对象的(实例)方法 console.log(p.sayHi()); class Student extends Person{ score:number;//学生成绩,新的成员属性 constructor(name,age,score){ //子类调用父类构造函数进行初始化 super(name,age); this.score=score; } //子类重写(覆盖)父类中的方法 sayHi(){ return "hi,我的姓名是:"+this.name+",我年龄是:"+this.age+",我的成绩是:"+this.score; } //子类中扩展的方法 study(){ return this.name+"在学习"; } } var stu=new Student("李四",24,90); console.log(stu.sayHi()); console.log(stu.study()); /* 关于类中成员访问修饰符: ts类中成员(成员属性、成员方法)的访问修饰符,类似于java中类成员的访问修饰符,不同的是ts中默认是被public修饰。 public :公有 在当前类里面、 子类 、类外面都可以访问 protected:保护类型 在当前类里面、子类里面可以访问 ,在类外部没法访问 private :私有 在当前类里面可以访问,子类、类外部都没法访问 属性如果不加修饰符 默认就是公有(public) */
Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1