如标题所述,我正在寻找一种在Kotlin接口中实现不可重写方法(final method)的方法。
以下是我的代码:
interface NewsItemState {
final fun delete(newsItem: NewsItem) {
validateCanDelete(newsItem)
deleteNewsItem(newsItem)
}
fun validateCanDelete(newsItem: NewsItem)
fun deleteNewsItem(newsItem: NewsItem)
}
以下是我的使用情况:
- 我希望
delete
函数被声明为final
,以使其无法在接口的实现中被覆盖。 - 我希望
validateCanDelete
和deleteNewsItem
方法可以在接口的实现中被覆盖。
目前这种方法还不可行,并且在接口中添加final
关键字是不允许的。我知道我可以通过将接口替换为抽象类来实现这一点。
但是,我想知道是否有一种在接口中实现相同功能的方法,因为我的final
方法不会有任何“状态管理”逻辑。
validateCanDelete
方法(在实现中被覆盖),然后调用deleteNewsItem
方法,该方法也在实现中被覆盖。 - Dimitar Spasovskifinal
。 - Taseer