Вы имеете в виду, как это?
abstract class BaseViewModel<N> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test
Вы можете сделать его еще более защищенным, если расширяться от базового интерфейса:
abstract class BaseViewModel<N:BaseTest> : ViewModel(){}
abstract class BaseActivity<T : ViewDataBinding,V: BaseViewModel<Test>> : AppCompatActivity() {}
interface Test:BaseTest
interface BaseTest
В этом случае, если ваш интерфейс не 't наследуя родительский класс generic, компилятор выдаст вам ошибку компиляции.