首页 > 解决方案 > 抽象类可以在 Kotlin 中包含非抽象类参数吗?

问题描述

代码 A 来自文章https://developer.android.com/training/dependency-injection/hilt-android

在我看来,抽象类不能包含非抽象类。

但是函数abstract fun bindAnalyticsService( analyticsServiceImpl: AnalyticsServiceImpl): AnalyticsService接受一个非抽象类参数,为什么?

代码 A

interface AnalyticsService {
  fun analyticsMethods()
}

// Constructor-injected, because Hilt needs to know how to
// provide instances of AnalyticsServiceImpl, too.
class AnalyticsServiceImpl @Inject constructor(
  ...
) : AnalyticsService { ... }

@Module
@InstallIn(ActivityComponent::class)
abstract class AnalyticsModule {

  @Binds
  abstract fun bindAnalyticsService(
    analyticsServiceImpl: AnalyticsServiceImpl
  ): AnalyticsService
}

标签: kotlin

解决方案


推荐阅读