0106 - Extensions
오늘은 간단하게! 러프하게!
Extensions 에 대해 알아보는 걸로 하죠잉
전에 상속을 공부했으니.. 확장에 대해 우리가 좀 더 생각해 볼 필요가 있겠죠?
상속이 .. 수직적 개념이라면!
확장은 사평적 개념이라고 생각하면 될 부분인거죠.
간단하게 생각하자면 상속은 성격이 비슷한 타임을 새로 만들어 데이터를 추가하는 거고, 확장은! 현재 존재하는 타입에 기능을 추가하여 사용하는거에요
여기서 알아야 할 점!
확장은!!!!! 메서드만!!!!!! 가능하다는 점!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
클래스나 구조체, 열거형도 가능하다는 점ㅋ.ㅋ
예시의 코드를 만들어보자면
class SomeType {
}
extension SomeType { // 기존의 타입에 extension 이라는 키워드를 사용해서 확장하고, 새로운 기능을 정의
func dosomething() {
print("d ")
}
}
뭐 이런 식으로 우린 표현할 수 있겠죠잉?
다음 예시를 한 번 봐보죠
class Person {
var id = 0
var name = "이름"
var email = "[email protected]"
func walk() {
print("사람이 걷는다.")
}
}
class Student: Person {
var studentId = 1
override func walk() {
print("학생이 걷는다.")
}
func study() {
print("학생이 공부한다.")
}
}
extension Student { // 스위프트에서는 확장에서 구현한 메서드에 대한 재정의가 불가 ⭐️ (@objc 붙이면 가능)
func play() {
print("학생이 논다.")
}
}
class Undergraduate: Student {
var major = "전공"
override func walk() {
print("대학생이 걷는다.")
}
override func study() {
print("대학생이 공부한다.")
}
func party() {
print("대학생이 파티한다.")
}
// func play()
// override func play() { // 스위프트에서는 확장에서 구현한 메서드에 대한 재정의가 불가 ⭐️
// print("대학생이 논다.")
// }
}
//extension Undergraduate {
// override func play() {
// print("대학생이 논다.")
// }
//}
주석으로 표현할 수 있는 부분은 표현했습니당
Author And Source
이 문제에 관하여(0106 - Extensions), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ian/TIL-0106저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)