4、Typescript类的继承和修饰符

  • 1、ts中类的定义使用关键字class、继承使用 extends 和 super
  • 2、子类方法名和父类相同表示重写父类方法
  • 3、 ts类中修饰符分为3种:
    • 3-1 public : 公有(所有)默认
    • 3-2 protected:保护 (父类+子类)
    • 3-3 private: 私有(本类)

案例:

// ts中类的继承
// 定义父类
class Person {
    name:string;
    age:number;
    constructor(name:string, age:number){
        this.name = name;
        this.age = age;
    }

    getName():string{
        return this.name;
    }

    setName(name:string):void{
        this.name = name
    }

    getAge():number{
        return this.age
    }

    setAge(age:number):void{
        this.age = age;
    }

    run():void{
        console.log(`${this.name}在跑步`);
    }
}

let p = new Person('zs', 20);
console.log(p.getName());
console.log(p.getAge());
p.run();
p.setName('lis');
p.setAge(33);
console.log(p.getName());
console.log(p.getAge());
p.run();

console.log('下面输出字类信息:');
// 继承
class People extends Person {
    //
    constructor(name:string, age:number){
        // 调用父类构造器
        super(name, age)
    }
    // 子类新增方法
    work():void{
        console.log(`${this.name}在工作`);
    }
    // 重写父类方法
    run():void{
        console.log(`${this.name}在跑步-子类重写`); 
    }
}

let ppp = new People('zl', 10);
console.log(ppp.getName());
console.log(ppp.getAge());
ppp.setName('zhaoliu');
ppp.work();
ppp.run();
console.log(ppp.name)


// ts类中修饰符
// 1、public : 公有(所有)默认
// 2、protected:保护 (父类+子类)
// 3、private: 私有(本类)

console.log('修饰符-------');

class Total {
    // 默认修饰符 public
    private num:number
    //
    constructor(num:number){
        this.num = num
    }
    show(){
        console.log(`num == ${this.num}`);
    }
}
let t = new Total(110);
//
t.show(); 
// 属性“num”为私有属性,只能在类“Total”中访问
console.log(t.num); 

你可能感兴趣的:(4、Typescript类的继承和修饰符)