我了解在创建这样的新对象时:
GeomObject tri = new Triangle();
更通用,并且允许更多的可重用性,但是当创建tri时会发生以下情况:
Triangle tri = new Triangle();
由于Triangle是GeomObject的子类,因此tri还是不是GeomObject?声明的类型如何影响编译?谢谢
add:另一个问题:说我有
Integer n1 = new Integer(3);
Object n2 = new Integer(4);
System.out.println(n1.compareTo(n2));
我在Eclipse上进行了尝试,即使我将n1与n2颠倒了也遇到了错误。我以为n2.compareTo(n1)会起作用,因为它将调用Object
compareTo方法,并且由于Integer是对象的实例,因此可以通过,但事实并非如此。你能解释一下吗?
由于
Triangle
是的一个子类GeomObject
,是不是tri
还是一个GeomObject
?
是的。使用instanceof
操作员进行测试:
System.out.println( (tri instanceof Triangl) ); //prints true
System.out.println( (tri instanceof GeomObject) ); //prints true
System.out.println( (tri instanceof Object) ); //prints true because every class extends from Object
声明的类型如何影响编译?
它不会有任何影响,只是会使您的代码 不灵活 ,以防您需要使用GeomObject
不是的另一种实现Triangle
。
更多信息:
我认为那
n2.compareTo(n1)
会起作用,因为它将调用Object#compareTo
方法
这是不正确的,因为Object
类没有compareTo
方法。
另一方面,n1.compareTo(n2)
由于您在接收到另一个类类型时将传递Object
给该compareTo
方法,因此将不起作用。Integer#compareTo
Integer
请注意,在声明时:
Object n2 = new Integer(4);
Object
,无论您将其初始化为Integer
还是另一个类,例如String
。n2
变量持有一个Integer
,则只有Integer
从class中被类覆盖的方法Object
才能像在Integer
类中定义的那样运行,所有其他方法,字段甚至html" target="_blank">变量本身会表现为Object
。在以下情况下Integer
类,这些方法是equals
,hashCode
和toString
。Object
何时应使用Integer
。请注意,Object
类 太 通用了(至少在这种情况下如此),因此,我不建议Object
直接使用至少您了解自己真正在做什么。问题内容: Xcode 8 beta 4不再识别Foundation类。 我在一个简单的操场示例中复制了它: 由于在较早的Xcode 8 Swift 3 Beta中可用,我想这是一个需要修复的错误,而不是Playground中的某些源代码错误? 问题答案: 尽管未在Xcode发行说明中记录,但Swift Foundation中对Swift进化建议SE-0086 Drop NS Prefix 的第2
我试图实现的是从声明类型数组。 使用enum,我可以这样做: 输出将是 我想通过这种方式实现类似的目标: 输出类似: 有什么想法吗?我尝试了和。不幸的是,它不起作用。
关于我的问题 我有一个模板类,如下所示: 所以简而言之,我想要的是:1。在类外部的容器类型上编写泛型函数模板。2.类中函数的原型是什么? 请建议
问题是如何使用对象类型发送Header,而不是HTTPClient声明中提供的HttpHeaders。 我在VS代码中得到的错误信息如下所示 “{headers:GetLoggedInUserHeaderRequestParam;}”类型的[ts]参数不可分配给“{headers?:HttpHeaders{[Header:string]:string string[];};};”类型“的参数;”观
9. 不完全类型和复杂声明 在第 1 节 “复合类型与结构体”讲过算术类型、标量类型的概念,现在又学习了几种类型,我们完整地总结一下C语言的类型。下图出自[Standard C]。 图 23.5. C语言类型总结 C语言的类型分为函数类型、对象类型和不完全类型三大类。对象类型又分为标量类型和非标量类型。指针类型属于标量类型,因此也可以做逻辑与、或、非运算的操作数和if、for、while的控制表达
cc.Class 是一个很常用的 API,用于声明 Cocos Creator 中的类,为了方便区分,我们把使用 cc.Class 声明的类叫做 CCClass。 定义 CCClass 调用 cc.Class,传入一个原型对象,在原型对象中以键值对的形式设定所需的类型参数,就能创建出所需要的类。 var Sprite = cc.Class({ name: "sprite" }); 以上代