一、定义一个Person类

  1. //给Person类定义两个属性,name和age
  2. class Person{
  3. name:string;
  4. age:number;
  5. constructor(name:string,age:number){
  6. this.name = name;
  7. this.age = age;
  8. }
  9. getName():void{
  10. console.log(this.name);
  11. }
  12. }
  13. var p:Person = new Person("cheng",30)
  14. p.getName();

二、extends继承

class Person{
    name:string;
    age:number;
    constructor(name:string,age:number){
        this.name = name;
        this.age = age;
    }
    getName():void{
        console.log(this.name);
    }
}
class Student extends Person{
    skill:string;
    constructor(name:string,age:number,skill:string){
        super(name,age);
        this.skill = skill;
    }
    getInfo(){
        this.getName();
        console.log(this.age);
    }
}
var s:Student = new Student("cheng",18,"typescript");
s.getInfo();

三、public,protected,private

public:公有                 在类里面,子类,类外面都可以访问
protected:保护类型   在类里面,子类都都可访问,在类外部没法访问
private:私有         在类里面可以访问,子类,类外面都没法访问
Tip:属性不加修饰符 默认就是公有。

1-1 private 在类外部是不可以访问的,子类不可以访问

class Student{
    private sayName():void{
        console.log("name")
    }
}
var s:Student = new Student();
s.sayName(); //error
class Person{
    private sayName():void{
        console.log("name")
    }
}
class Student extends Person{
    childSay(){
        super.sayName() //error
    }
}
var s:Student = new Student();

1-2 protected 子类中可以访问,类外部不可以访问

class Person{
    protected sayName():void{
        console.log("name")
    }
}
class Student extends Person{
    childSay(){
        super.sayName()
    }
}
var s:Student = new Student();
s.sayName();  //error
class Person{
    public name:string;
    age:number;
    constructor(name:string,age:number){
        this.name = name;
        this.age = age;
    }
    getName():void{
        console.log(this.name);
    }
}
var cheng = new Person("cheng",19);
//public修饰的变量,在类里面,以及子类,类外部都能访问
console.log(cheng.name);