export
export class Pet{
//访问修饰符 本类,本包 其他包,子类
//pubilc 共有的 任何位置都可以访问
public id:number
//default 默认值
name:string
private sex:string
b(){
console.log('默认');
}
//私有的 只允许本类访问
private a(){
console.log('私有的');
}
constructor(id:number,name:string,sex:string){
this.id=id
this.name=name
this.sex=sex
}
}
访问修饰符 本类,本包 其他包,子类
pubilc 共有的 任何位置都可以访问
default 默认值
private 私有的 只允许本类访问
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;
}
public getLove():number{
return this.love;
}
set 设置/赋值
public setId(id:number){
this.id=id
}
public setName(name:string){
this.name=name
}
public setSex(sex:string){
this.sex=sex
}
public sexHelth(helth:number){
this.helth
}
public setLove(love:number){
this.love=love
}
继承 子类继承父类的属性和方法
1.继承的关键字 extends
class B extends A{
//子类可以有自己的属性和方法
b1:number
b2:number
b3() {
console.log('b的函数');
console.log(this.a1);
console.log(this.a2);
//子类无法继承父类的私有属性和方法
//console.log(this.a3);
//this.aa
this.bb()
}
//派生类的构造函数必须包含"super"调用
constructor(a1:number,a2:number,a3:number,b1:number,b2:number){
//super:调用父类的构造函数 必须写在构造函数的第一行
super(a1,a2,a3)
this.b1=b1
this.b2=b2
}
}
let ba:B=new B(1,2,3,4,5);
ba.bb()
2.子类继承父类 只能继承一个(单继承)
3.一个父类 可以有多个子类
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()
}
constructor(a1:number,a2:number,a3:number,b1:number,b2:number){
this.b1=b1
this.b2=b2
}
}
class C extends A{
c1:number
c2:number
c3() {
console.log('c的');
console.log(this.a1);
console.log(this.a2);
this.cc()
}
constructor(a1:number,a2:number,a3:number,b1:number,b2:number){
super(a1,a2,a3)
this.c1=c1
this.c2=c2
}
}
4.object 类是所有类的父类,没有显示继承的类都默认继承object
5.继承子类必须调用父类的构造函数,构造函数必须在第一行
6.子类不能继承父类的私有属性和方法
7.在子类中调用父类的属性和方法需要使用this关键字
8.子类属性和父类属性同名,默认使用子类的属性
9.方法同名时:可以同名,默认调用子类方法,可以使用super调用父类方法