【发布时间】:2014-06-24 13:23:44
【问题描述】:
这是我做的测试: 我定义了 2 个类:
class Test1 {
var p1:String? = "p1"
init(){
println("init test1")
}
}
class Test2: Test1 {
init() {
super.init()
p1 = "p2"
println("init test2")
}
}
然后我创建一个 Test2 的实例
let x = Test2()
我会检查 Test2 是否是 Test2 的子类
if x is Test1 {
println("ok")
}else{
println("no")
}
但我有一个构建错误:Test1 不是 Test2 的子类型
我哪里错了?
我试过了,没有成功,也是这样:
if let y = x as? Test1 {
println("ok")
}else{
println("no")
}
【问题讨论】:
-
我找到了一种方法来处理这个问题让 x:AnyObject = Test2() 那么演员们有没有人更深入地解释原因?