TypeScript类的修饰符 public private protected的详细讲解

简单介绍一下public private protected

public:当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰。外部是可以进行访问的。
private属性只能够在父类的内部直接进行访问。   private读音【ˈpraɪ vɪ t】
protected:可以在父类或者子类内部访问,不能够在外部访问。

super

ps:super 可以调用父类中的公共属性和公共方法,以及受保护的方法。但是不能访问受保护的属性。
如果我们需要访问被保护属性我们可以通过 this 关键字来访问(前提是需要继承)

1.修饰符 public

 当一个类的成员变量没有修饰的时候,默认的就是 public 进行修饰。外界是可以进行访问的。
class Person {
  age= 10 //没有修饰符默认是被public访问
  private name = "张三" // private 属性只能够在Person类的内部 进行访问;
  say() {
    console.log("我的名字是" + this.name)
  }
}
let p = new Person()
console.log(p.age) //可以正常访问
//console.log(p.name) //报错 属性“name”为私有属性,只能在类“Person”中访问

2.继承父类 extends

class Person {
 age=10;
 private name = "张三"; // private 属性只能够 在类的内部 进行访问;
 say() {
   console.log("我的名字是" + this.name);
 }
}

//继承父类子类就可以访问父类中的属性和方法。
//如果父类是定义的私有属性或者方法的时候,子类就不可以进行访问。

class Children extends Person {
  callPar() {
    super.say(); //super 可以调用父类中公开的的属性 方法
  }
}

var xm = new Children();
xm.callPar(); //我的名字是张三

protected 的使用

class Person {
  protected age= 10; //修饰的属性和方法是受保护的,只能够在父类或者子类内部访问
  private name = "张三"; // private 属性只能够 在类的内部 进行访问;
  say() {
    console.log("我的名字是" + this.name);
  }
}

// 继承父类
class Children extends Person {
  callPar() {
    super.say(); //super 可以调用父类中的公共属性和公共方法,以及受保护的方法。但是不能访问受保护的属性
  }
  hello() {
    // protected修饰的属性和方法是受保护的,只能够在父类或者子类中进行访问,不能在外部访问。 通过this进行访问
    console.log("我今年" + this.age);
  }

  other() {
    // 会报错的,返回的是 undefined,  super是不能访问受保护的属性.可以通过this访问
    console.log("我今年" + super.age);
  }
}

var xm = new Children();
xm.callPar(); //我的名字是张三
xm.hello(); //  我今年10
xm.other(); //返回的是 undefined
// console.log(xm.age );// 报错 protected修饰的属性或者方法。可以在父类或者子类内部访问,不能够在外部访问。

static 静态方法的使用

class Person {
  protected age= 10; //修饰的属性和方法是受保护的,只能够在父类或者子类内部访问。
  private name = "张三"; // private 属性只能够 在类的内部 进行访问;不能够在外部访问。
  say() {
    console.log("我的名字是" + this.name);
  }
}

// 继承父类
class Children extends Person {
  static test() {
    console.log("我是静态方法");
  }
}
Children.test(); //静态方法 可以直接去调用 此时是不允许使用 this;this是使用在实例化当中
ps:静态方式的调用方式:实例对象.静态方法名称
posted @ 2020-03-08 16:57  南风晚来晚相识  阅读(346)  评论(0编辑  收藏  举报