TS 面向对象 -- 类

class 类是typescript的核心,使用TS开发大多数代码都是写在类里面的


# 1:类的声明


No 1:关键字  类名 { 类的属性; 类的方法;}

class News{

    title;

    read(){

          console.log("read me");

    }

}

No 2:类的实例化:

var xxxj = new News();

xxxj.title = "my title";

xxxj.read();

No 3:在声明类的属性和方法的时候设置访问控制符,控制其属性方法是否可在类的外部访问到

public : 可以在任意地方使用,也是不声明时的默认操作符;

private : 只可在class内部被调用;

protected : 在class内部和该类的后代继承元素上可以使用


# 2 :类的构造函数


构造函数constructor是类里面一个特殊的方法,此函数只可在函数内部应用只,在实例化的时候被调用一次。

构造器函数的一个重要用途就是规定一个类里的某些属性必须在实例化时被传入值

class News {

   constructor(public title:string) {   }  // 必须声明控制符,要不然是未声明的

    read(){

        console.log("read me :" + title);

   }

}

等价于:

class News{

  title;

  constructor( title:string) {

    this.title = title;

  }

  read(){

     console.log("read me" + title);

  }

};

var n1 = new News();     // 报错

var n2 = new News('xxxj');    //打印 read me : xxxj


# 3 :类的继承


No 1:extends关键字是用来声明一种继承关系的

class News {

constructor(public title:string) {   }

read(){

console.log("read me :" + title);

}

}

class NewsChild extends News {

time:string;

fun(){ }

}

var n3 = new NewsChild();

n3.title = "jxxx";

n3.fun();

No 2:super关键字是用来调父类的构造函数和父类的其他方法

class NewsChild extends News{

constructor(title:string,public no:number) {

super(title);

//在这里用super继承了父类构造函数的title属性,将title和no作为子类的两个实例化时必须赋值的属性

fun(){

    super.read();

    this.work();

 }

  private work(){  ...   }

}

你可能感兴趣的:(TS 面向对象 -- 类)