【发布时间】:2015-09-16 05:35:50
【问题描述】:
class Media {
var name :String = ""
init(name:String) {
self.name = name
}
}
class Song:Media {}
class Movie:Media{}
let s1 = Song(name :"Fireproof")
var m1 :Media = s1 //upcasting
//var s2 :Song = m1
var s2:Song = m1 as Song //down casting
// var x1 :Movie = m1 as Movie //
在
var m1: Media = s1这一行你可以设置m1等于s1,因为m1的类型是s1的超类??在线
var s2: Song = m1 as Song,它被认为是“向下转换”,是因为m1: Media并且您将它“转换为”Song类型以匹配相同类型的 @ 987654330@? (如果这是真的,那我们为什么要更早设置m1=s1,而s1的类型与m1不同??)所有这些向上转换和向下转换的意义何在?我已经阅读了苹果文档并设法让自己更加困惑:'(
【问题讨论】:
-
请粘贴代码。不是图片/图像/照片。
标签: swift casting type-conversion downcast upcasting