class A(val n: Int) : X() { fun foo() { } override fun equals(other: Any?): Boolean{ if (this === other) return true if (other?.javaClass != javaClass) return false if (!super.equals(other)) return false other as A if (n != other.n) return false return true } override fun hashCode(): Int{ var result = super.hashCode() result += 31 * result + n return result } }