Open Do-hyun-Kim opened 11 months ago
is
, as
연산자로 구현된다.is → Checking Type
표현식 is Type
하위 클래스 타입
인 경우 True 반환bool
형을 반환한다.as
연산자를 사용해서 할 수도 있다.as?
, as!
연산자를 사용한다.as?
는 실패하면 nil을 반환하고,as!
는 실패하면 런타임 에러를 만든다.override
키워드를 사용한다.오버로딩
func student(name: String) {
print("Hello, my name is \(name)")
}
func student(age: Int) {
print("I'm \(age) years old")
}
student(name: "knockknock") // Hello, my name is knockknock
student(age: 20) // I'm 20 years old
타입 캐스팅 연산자(is, as)
is
) 해당 인스턴스를 Super Class, sub Class로 타입 변환를 할 수 있도록 연산자를 제공해 준다.is
타입 체크 연산자는 실제 런타임 시점에서 체크가 이루어지며, 표현식이Type
의 서브 클래스 인 경우나 Type과 동일한 경우느True
를 반환하며, 그 외의 경우에는False
를 반환한다.as
연산자를 통해서 변환할Type
의 인스턴스를 리턴 할 수 있으며, 상속 관계인UpCasting
과DownCasting
이 있다.Any
,AnyObject
같은 경우 상속 관계가 아니여도 예외적으로 타입 캐스팅을 사용 할 수있다.다형성(Polymorphism)
Object
)가 여러 가지 타입(type
)을 가질 수 있는 것을 의미한다.Object Oriented Programming
의 다형성의 대표적으로 오버로딩(Overloading), 오버라이딩(Overriding)이 있다.Protocol Oriented Programming
은 확장(extension
)을 통해 공통 코드(Method
)를 제공해 줄수 있다.