constructor构造函数:
会在对象创建时调用,可以自定义对象的值1 class Dog{ 2 name:string; 3 age:number; 4 bark(){ 5 alert("汪!"); 6 console.log(this.name);//在方法中可以通过this来表示当前调用方法的对象 7 } 8 /** 9 * constructor构造函数: 10 * 会在对象创建时调用 11 */ 12 constructor(name:string,age:number){ 13 //在实例方法中,this就表示当前实例 14 //在构造函数中,当前对象就是当前新建的对象 15 //可以通过this向新建的对象添加属性; 16 this.name=name; 17 this.age=age; 18 } 19 } 20 21 const dog_black = new Dog("小黑",2); 22 const dog_white = new Dog("小白",4); 23 console.log(dog_black); 24 dog_black.bark();
继承:
- 定义一个表示狗(Dog)的类;
- Dog类继承Animal类;
- Animal 被称为 父类,Dog被称为子类,子类将拥有父类的属性和方法
- 通过继承可以将多个类中共有的代码写在一个父类中,这样需要写一次即可让所有的子类都同时拥有父类的所有属性和方法n;
- 如果希望在子类中添加一些父类中没有的方法和属性,直接添加即可;
- 如果子类中添加了和父类相同的方法,则子类方法会覆盖父类的方法,这种形式也叫重写
1 class Animal { 2 name: string; 3 age: number; 4 bark() { 5 alert("动物在叫"); 6 } 7 8 constructor(name: string, age: number) { 9 this.name = name; 10 this.age = age; 11 } 12 }
1 class Dog extends Animal{ 2 3 }
Dog拥有Animal所有属性和方法也可以;
const dog = new Dog("旺财",12); dog.bark();
继承的应用
- 如果向在子类中调用父类方法?
- 在子类中覆盖父类的方法?
- 在子类中重新添加方法?
1 class Dog extends Animal{ 2 run(){ 3 console.log("run") 4 } 5 bark(): void { 6 //super表示当前类的父类 7 super.bark();//调用父类方法 8 } 9 constructor(name:string,age:number){ 10 //如果在子类中写了构造函数,此时,在子类的构造函数中必须对父类的构造函数进行调用 11 super(name,age); 12 } 13 14 }
调用:
const dog = new Dog("旺财",12); dog.bark(); dog.run();
标签:typescript,name,继承,子类,age,Dog,父类,构造函数 From: https://www.cnblogs.com/lixiuming521125/p/16732843.html