如何获取对象的真实类型

在代码开发中,多态的运用很常见,需要对对象的类型做判断,调用不同类的方法。

HarmonyOS
2024-09-18 12:15:06
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以使用instanceof进行判断来达到得知对象类型的目的

参考代码:

class BaseClass { 
  value: number = 0; 
 
  printf() { 
    console.log("base value:" + this.value) 
  } 
 
  setValue(val: number) { 
    this.value = val; 
  } 
} 
 
class AClass extends BaseClass { 
  value: number = 1; 
 
  setValue(val: number) { 
    this.value = val; 
  } 
 
  getValue(): number { 
    return this.value 
  } 
} 
 
class BClass extends BaseClass { 
  value: number = 2; 
 
  setValue(val: number) { 
    this.value = val; 
  } 
} 
 
class CClass extends BaseClass { 
  value: number = 3; 
 
  setValue(val: number) { 
    this.value = val; 
  } 
} 
 
function printValue(base: BaseClass) { 
  base.printf(); 
  let flag = base instanceof AClass; 
  console.log("printValue flag:" + flag) 
  if (flag) { 
    let val = (base as AClass).getValue(); 
    console.log("printValue val:" + val) 
  } 
} 
 
printValue(new AClass())
分享
微博
QQ
微信
回复
2024-09-18 17:52:40
相关问题
HarmonyOS无法获取蓝牙设备真实MAC
764浏览 • 1回复 待解决
如何定义一个未知类型对象
909浏览 • 2回复 待解决
ArkTS中如何使用字典类型对象
48浏览 • 1回复 待解决
如何选择PolarDB迁移类型和迁移对象
3109浏览 • 1回复 待解决
HarmonyOS 如何获取对象方法列表
448浏览 • 1回复 待解决
如何获取对象所有方法
428浏览 • 1回复 待解决
HarmonyOS 如何获取Resource对象
35浏览 • 1回复 待解决
如何将Resource资源对象转成string类型
3180浏览 • 1回复 待解决
HarmonyOS json对象转map类型
181浏览 • 1回复 待解决
ArkTs中如何获取对象类名
2617浏览 • 1回复 待解决
new 出来对象如何获取所属类
1930浏览 • 1回复 待解决
HarmonyOS 如何获取网络类型
374浏览 • 1回复 待解决
鸿蒙中如何获取context对象
9346浏览 • 1回复 待解决
如何通过key获取对象
372浏览 • 1回复 待解决
如何获取对象唯一标识(Hash值)
598浏览 • 1回复 待解决