Как работает `isInstanceOf `?

Предположим, что у нас есть:

class B
class A extends B
trait T

Тогда верно:

val a: A with T = new A with T 
a.isInstanceOf[B]  // result is true !

Правильно ли говорить, что метод isInstanceOfпроверяет, существует ли хотя бы один тип (, а не все типы ), которые соответствуют правой части отношения подтипа?

На первый взгляд я подумал, что значение типа A with Tне может быть подтипом B, потому чтоAиTне являются обоими подтипами B. Но этоAилиTявляется подтипомB--это правильно ?

25
задан John Threepwood 2 July 2012 в 08:29
поделиться