1. 샘플코드
// casting
class Animal{}
class Dog:Animal{}
class Cat:Animal
{
func cry() { print("cat cry")}
}
var p : Animal = Cat()
// p가 누구인지 조사하기
print(p is Dog)
print(p is Cat)
print(p is Animal)// 항상 true라고 warning
//p.cry() // Animal에 없기 때문에 런타임에러
//var p2 = p as! Cat // 강제 형변환
//var p2 = p as! Dog // 뒤짐, optional로 받자
// as! : 잘못된 타입으로 캐스팅 하면 runtime error
var p2 = p as? Dog // optional<Dog>
// as? : optional 타입으로 캐스팅
showType(p2)
print(p2)
'교육 > Swift' 카테고리의 다른 글
[swift] operator overloading (0) | 2016.08.08 |
---|---|
[swift] protocol (0) | 2016.08.08 |
[swift] extension (0) | 2016.08.08 |
[swift] subscript (0) | 2016.08.08 |
[swift] method (0) | 2016.08.08 |