How to compare classes and interfaces?

Viewed 13767

Can anybody explain me how to compare KClasses and interfaces among themselves? I know how to check if classes or interfaces are equal but I don't understand how to check if A class is a superclass of B class, etc.

interface IB {}
interface IC : IB {}

open class A {}
open class B : A() {}
open class C : B(), IC {}

fun main(args: Array<String>) {
  if (B::class == B::class) { println("B class is equal to B class") }
  if (IB::class == IB::class) { println("IB interface is equal to IB interface") }
    
  if (A::class ??? B::class) { println("A class is parent of B class") }
  if (A::class ??? C::class) { println("A class is superclass of C class") }
    
  if (C::class ??? IC) { println("C class implements IC interface") }
  if (IC ??? IB) { println("IC interface implements IB interface") }
}
1 Answers
Related