Skip to content
广告位招租广告位招租

类继承/实现老是报错?

  • 众所的周知,类分为继承和实现
    • 在uts中目前来讲继承和实现在同一个类都能使用
ts
import Context from 'android.content.Context';
// 继承
class TestContext extends Context {}
// 实现
class TestContext implements Context {}

是继承还是实现?

  • 在uts中继承可以,实现也可以
  • 但是在第三方SDK或系统底层包中,如果类的方法实在太多,实现很麻烦,那就用继承!
  • 当然在第三方SDK或系统底层包中,会强制要求你去不管是继承还是实现都要去覆写该方法,例如override

是否需要完整实现?

  • 如果类强制要求,则必须,反之。

怎么排查报错?

  • 一般类都存在初始化也就是constructor,如果constructor存在属性
  • 例如
    • 则需要在继承类的TestContextB中加上context
    • 原始类TestContextAtestA方法需要被TestContextBtestA覆写
    • 一旦声明的类型出现不正确或者没有加上参数等,都会引起报错
ts
import {context} from "esbuild";

class TestContextA {
    constructor(context: Context) {

    }

    testA(context: Context) {
    }
}

class TestContextB extends TestContextA {
    constructor(context: Context) {
        super(context);
    }

    override testA(context: Context) {
        
    }
}
  • 在排查过程中,一定要确保原始类的方法和参数对应上
    • 在原生中可能会出现很多相同名字的类型或类
    • 需要确保原始类使用的类型是哪些包下面的!