|
类 |
外部 |
子类 |
| public |
√ |
√ |
√ |
| private |
√ |
× |
× |
| protected |
√ |
× |
√ |
class Person{ /* 1、使用private修饰的变量在类外部是不可读取的 */ private name:string ="lisi"; public age:number = 20; sayName(){ console.log(this.name); } sayAge(){ console.log(this.age); }}var p:Person = new Person();// console.log(p)// console.log(p.name);// console.log(p.age);p.age = 30;// console.log(p);p.sayName();p.sayAge();
class Student{ protected name:string = "lisi"; sayName(){ console.log(this.name); }}/* protected和private的区别:在子类中protected是可以访问的private不可以访问 */class MidStudent extends Student{ getName(){ console.log(this.name); }};var m:MidStudent = new MidStudent();m.getName();
/* static使用static关键字修饰的变量,表示类的公用变量,不用实例化直接使用类名调用 *//* 在类中声明的变量默认是public */class Http{ private static baseUrl:string = "https://www.douban.com"; static request(){ console.log("res") }}console.log(Http.baseUrl);Http.request();/* 静态变量或静态方法时不能通过实例调用 */Http.baseUrl = "lisi";