面向对象 继承
1.私有化属性
private id: number
private name: string
private sex: string
private helth: number
2.提供一个共有的方法来访问属性 getter/setter
public getId(): number {
return this.id;
}
public getName(): string {
return this.name;
}
public getSex(): string {
return this.sex;
}
public getHelth(): number {
return this.helth;
}
3.set 设置/赋值
public setId(id: number) {
this.id = id
}
public setName(name: string) {
this.name = name
}
public setSex(sex: string) {
this.sex = sex
}
public setHelth(helth: number) {
this.helth = helth
}
必须用get函数访问属性
1继承的关键字 extends
2.子类继承父类 只能继承一个类(单继承)
3.一个父类可以有多个子类
4.object类是所有类的父类
5子类必须调用父类的构造函数,构造函数必须在第一行
6.子类不能继承父类的私有属性和方法
7.在子类中调用父类的属性和方法需要使用this关键字
父类,子类
继承子类继承父类的属性和方法
父类
class A {
public a1: number
a2: number
private a3: number
constructor(a1: number, a2: number, a3: number) {
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
}
public getA3(): number {
return this.a3
}
public setA3(a3: number) {
this.a3 = a3;
}
private aa() {
console.log("私有方法");
}
public bb() {
console.log("父类的共有方法");
}
}
子类
class B extends A {
//子类可以有自己属性和方法
b1: number
b2: number
b3() {
console.log('b的函数')
console.log(this.a1)
console.log(this.a2)
//子类无法继承父类的私有属性和方法、
this.bb()
}
// 派生类的构造函数必须包含 "super" 调用。
constructor(a1: number, a2: number, a3: number, b1: number, b2: number) {
//调用父类的构造函数 必须写在第一行
super(a1, a2, a3)
this.b1 = b1
this.b2 = b2
}
}