[Swift] 클래스 상속
Swift 문법을 단단하게 공부하고 싶어서 정리를 해보려고 한다!
차근 차근 공부하면서 머릿속에 넣고 싶은 부분에 대해 정리를 해볼 예정이다!
오늘은 클래스 상속에 대해 간단하게 정리를 해볼 것이다.
1. 클래스 선언 및 서브 클래스 만들기
스위프트에서는 클래스를 선언하고 그 클래스를 상속 받아 활용이 가능하다.
이 때 상속의 대상이 되는 클래스를 super 클래스, 상속 받는 클래스를 sub 클래스라고 한다.
//Super 클래스
Class animal{
var leg = 0
func sound(){
print("mong!")
}
}
//Sub 클래스
Class cat: animal{
var color = "yellow"
}
cat.sound() //mong! 출력
cat.color //yellow
cat.leng //0
이런 식으로 두개의 클래스를 만들었을 때
animal 클래스는 super 클래스, cat 클래스는 sub 클래스이다.
클래스를 선언할 때 클래스 명 뒤에 ( : "Super 클래스명 ) 을 써줌으로써 상속이 가능하다.
cat 클래스는 animal 클래스를 상속 받아 animal 클래스의 프로퍼티를 사용할 수 있고, 새로운 프로퍼티를 추가할 수도 있다.
2. 프로퍼티 재정의
sub 클래스는 super 클래스의 프로퍼티를 수정하여 사용할 수도 있다.
override를 사용하여 프로퍼티를 재정의하면 프로퍼티의 내용이 변경된다.
//Super 클래스
Class animal{
var leg = 0
func sound(){
print("mong!")
}
}
//Sub 클래스
Class cat: animal{
var color = "yellow"
override func sound(){
print("meow~")
}
}
cat.sound() //meow~ 출력
cat.color //yellow
cat.leng //0
sound() 함수를 재정의 해주면 animal 클래스에서 정의한 내용이 아니라 cat 클래스에서 재정의 한 내용이 출력된다.
이 때 재정의 되기 이전의 Super 클래스의 함수를 사용하고 싶은 경우에는
super.함수명() 의 형태로 호출이 가능하다.
위의 코드에 이를 추가해주면
//Sub 클래스
Class animal{
var leg = 0
func sound(){
print("mong!")
}
}
Class cat: animal{
var color = "yellow"
override func sound(){
print("meow~")
super.sound()
}
}
cat.sound() //meow~
//mong!
cat.color //yellow
cat.leng //0
cat.sound()를 실행했을 때 첫번째 줄에는 cat 클래스에서 재정의된 함수가, 두번째 줄에는 animal 클래스에서 정의된 함수의 내용이 출력된다.
3. final
프로퍼티를 처음 정의할 때 final을 지정하여 정의하면 Sub 클래스에서의 재정의가 불가능하다.
클래스를 선언할 때 final을 지정하면 Sub 클래스를 생성할 수 없다.
Author And Source
이 문제에 관하여([Swift] 클래스 상속), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nkrang/Swift-클래스-상속저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)