Я не совсем понимаю, почему, когда мы сравниваем два экземпляра с теми же свойствами класса без переопределения метода equals
, что он даст false
. Но при сравнении двух экземпляров класса case он даст true
. Например
class A(val name: String, val id: Int)
case class B(name: String, id: Int)
object Test {
val a1 = new A('a',1)
val a2 = new A('a',1)
println(a1 == a2) //this returns false
var b1 = B('b',1)
var b2 = B('b',1)
println(b1 == b2) //this returns true
}
Может кто-нибудь объяснить, почему, пожалуйста?