HarmonyOS 鸿蒙Next 带泛型的类定义,继承之后,子类如何赋值给父类
HarmonyOS 鸿蒙Next 带泛型的类定义,继承之后,子类如何赋值给父类
class Request<T> { }
class AuthRequest<string>{}
class CommRequest<number>{}
private currentRequst:BleRequest<?>;
currentRequest = new AuthRequest();
currentRequest = new CommRequest();
2 回复
可参考如下demo:
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
[@State](/user/State) message: string = 'Hello World';
[@State](/user/State) param: compA<string> | null = null;
[@State](/user/State) param2: comp2A<string | number> | null = null;
aboutToAppear(): void {
this.param = new compB("11", 1);
this.param2 = new comp2B(() => {
})
}
build() {
RelativeContainer() {
Text(JSON.stringify(this.param))
.id('Index3HelloWorld')
.fontSize(50)
.fontWeight(FontWeight.Bold)
.alignRules({
center: { anchor: 'container', align: VerticalAlign.Center },
middle: { anchor: 'container', align: HorizontalAlign.Center }
})
}
.height('100%')
.width('100%')
}
}
class compA<T> {
test: string
constructor(test: string) {
this.test = test;
}
}
class compB extends compA<number> {
test1: number;
constructor(test: string, test1: number) {
super(test);
this.test1 = test1;
}
}
class comp2A<T> {
public onResult: (code: number, result: T) => void;
constructor(onResult: (code: number, result: T) => void) {
this.onResult = onResult;
}
}
class comp2B extends comp2A<number | string> {
constructor(onResult: (code: number, result: number | string) => void) {
super(onResult)
}
}
export { compA, compB }
更多关于HarmonyOS 鸿蒙Next 带泛型的类定义,继承之后,子类如何赋值给父类的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,使用ArkUI(TS/JS)或eTS进行开发时,如果涉及到类定义和泛型,通常会遵循面向对象编程的基本原则。对于带泛型的类定义及继承关系中的赋值问题,可以参考以下说明:
假设有一个带泛型的父类Parent<T>
和一个继承自它的子类Child<T>
,子类赋值给父类的操作可以通过类型参数匹配的方式来实现。
示例如下:
// 定义泛型父类
class Parent<T> {
value: T;
constructor(value: T) {
this.value = value;
}
}
// 定义泛型子类
class Child<T> extends Parent<T> {
constructor(value: T) {
super(value);
}
}
// 使用示例
let genericType: string = "Hello";
let child = new Child<string>(genericType);
let parent: Parent<string> = child; // 子类实例赋值给父类变量
// 此时parent变量持有的是Child实例,但类型是Parent<string>
在鸿蒙系统的ArkUI或eTS中,泛型的使用方式与此类似,确保类型参数一致即可实现子类到父类的赋值。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html