关键字 is 、as:
关键字 is ,用来判断某个对象是否是指定的类型 。因为 a2是 指向了 Rectangle ,所以下面的值就是真。
Rectangle a = new Rectangle();
//注意这里的创建对象的方式。以前我们都是new的相同的类型的 ,这里 new的是它的一个子类
Shape a2 = new Rectangle();
bool x1 = a2 is Rectangle;
关键字 as , 这个关键字是尝试做类型转换的,如果是同样的类型就转换,如果不是就返回null,as 只能对引用类型进行转换 ,不能对值类型进行处理。
Rectangle y1 = a2 as Rectangle;
is a 、 has a:
一个基类的对象是可以指向任何子类的,反之不成立,你可以说矩形是一个形状,但肯定不能说形状是一个矩形,同样的你可以说人是动物,不能说动物是人,在面向对象中我们称 这种关系是 is a 的关系,就是什么是什么的意思,面向对象之间还有一种关系 是 has a ,就是包含关系,比如 内存就是电脑的一部分,那他们之间就是 has a的关系。