arkTs
Rerson:属性
属性必须要加初始值
构造函数:给属性初始值 ,初始化属性
例:firstName:string=''
fullName(){
return this.lastName+this.firstName
}
实例字段,通过new对象之后进行访问的字段
let p:Person=new Person('z','s')
p.firstName='吱吱吱'
class ‘’‘’{}不能有构造函数和函数,只能有普通的属性
static+。。。。是静态字段
static *(****) 是静态函数
静态函数不支持this,以及无法访问非静态字段/函数
静态字段使用类名进行访问
# 继承
父类 基类
子类 只支持单继承
子类必须调用父类的有参物的构造函数
super就是调用父类的构造参数
静态函数无法继承
## 重写
子类重写父类的函数
注意!:1.方法名相同
2.参数类型相同
3.返回值类型相同或是其子类
this.show是子类
super.show是父类
## 重载
同一个类中,方法名相同,参数列表不同,返回值类型相同
子类函数和父类函数重名,回调用子函数
public 共有的
protected 受保护的:本类的和子类中使用
private 私有的
## 泛型
map <K,Y>泛型
确定泛型安全
T类 K:key V:value E:element集合 ?:不确定 N:number
返回数字数组的最后一个元素
泛型不明确规定的是什么类型,只有自己最后定义的才是真正的类型
## 接口
接口的属性会在实现类中
interface Stu2{ name:string sex:string eat():void study():number
}class Stu3 implements Stu2{ name: string='' sex: string=''
eat(): void { throw new Error('Method not implemented.') }
study(): number { throw new Error('Method not implemented.') }
}let stu3=new Stu3();stu3.name='123w'
也可以实现多个接口
interface A1{ a():void}interface B1{ b():void}class C1 implements A1,B1{ b(): void { throw new Error('Method not implemented.') } a(): void { throw new Error('Method not implemented.') }}
## 多态
多态的实现方法,同一个方法在不同的条件得到不同的结果 继承中的多态
1.以父类作为形参
2.以父类作为返回值
接口实现的太多和继承实现的多态没有区别