Java 中instanceof 的使用前提是左边的对象是右边类型的父类, 子类或者是同类. 如果不是的话, 编译都无法通过. 强转也是一样的, 要求这样.
C# 中is 的话, 对这个并没有要求, 只会在运行的时候根据类型判断, 返回true 或者false. 但是强转的话也是要求的, 要求编译时左右两边的类型是父子或者是同类关系
不论是Java 或是C# 中null instanceof 或者是null is 返回都是false
创建对象的不一定会调用构造函数, 在通过克隆或者是反序列化获取的对象的时候是不会调用构造函数的.