일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- class
- programmers
- 함수
- guard
- 전의 의존성
- pagination
- jQuery
- Spring
- 차이점
- 옵셔널
- DatePicker
- PHP
- 자료불러오기
- EC2
- 2차원 객체배열
- Gradle
- AWS
- 제어문
- 상속
- Xcode
- SWiFT
- 클래스
- 객체
- amazon
- bootstrap
- CKEditor4
- switch-case
- CodeIgniter
- 사용법
- Java
Archives
- Today
- Total
not bad 한 개발
Swift - override(클래스 상속) 본문
(인덕대학교 컴퓨터소프트웨어학과 iOS프로그래밍기초(21-2학기)한성현 교수님 강의 내용을 변형 및 요약했습니다.)
override(클래스 상속)
- 부모 혹은 상위클래스를 자식 클래스에 재정의한다는 의미입니다.
- 상속이라는 작업을 하게 되면 부모 클래스에 있는 모든 기능을 자식 클래스에서도 사용이 가능해집니다.
- 자식에게 상속해주는 부모 클래스는 하나만 가능합니다.
- 부모와 자식에 같은 메서드가 있으면 자식 클래스에 있는 메서드를 우선적으로 호출합니다.
super
- 부모 메서드의 인스턴스를 초기화 할 때 사용합니다.
- 만약 부모로 부터 상속을 받고 초기화를 하는데 self 앞에 super를 사용안하면 에러가 납니다.
(override 예제 코드)
class woMan {
var age1 :Int = 20
var weight2 :Double = 60.5
func disPlay (){
print ("나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double ){
self.age1 = myAge
self.weight2 = myWeight
}
}
class son : woMan {//상속은 클래스만 가능합니다.
//비어있지만 woMan의 내용을 가지고 있습니다.
}
var Lee1 : woMan = woMan (myAge :10 , myWeight :50.5 )
Lee1.disPlay ()
var Lee2 : son = son (myAge :20 , myWeight :60.5 )
Lee2.disPlay ()
print (Lee2.age1 )
(super 예제 코드)
class woMan {
var age1 :Int = 20
var weight2 :Double = 60.5
func disPlay (){
print ("나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double ){
self.age1 = myAge
self.weight2 = myWeight
}
}
class son : woMan {
var name3 :String
func disPlays (){
print ("이름:\(name3), 나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double , myName :String ){
self.name3 = myName
super.init (myAge :myAge , myWeight : myWeight )
}
}
var Lee1 : son = son (myAge :10 , myWeight :50.5 , myName :"LDB")
Lee1.disPlays ()//이름:LDB, 나이:10, 무게:50.5
Lee1.disPlay ()//나이:10, 무게:50.5
(super 를 작성 안 할 경우 예제 코드)
class woMan {
var age1 :Int = 20
var weight2 :Double = 60.5
func disPlay (){
print ("나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double ){
self.age1 = myAge
self.weight2 = myWeight
}
}
class son : woMan {
var name3 :String
func disPlays (){
print ("이름:\(name3), 나이:\(age1), 무게:\(weight2)")
}
init (myAge :Int , myWeight :Double , myName :String ){
self.name3 = myName
//super.init (myAge :myAge , myWeight : myWeight )
}//'super.init'는 초기화 프로그램에서 반환되기 전에
//모든 경로에서 호출되지 않습니다.
//라는 문구가 나옵니다.
}
var Lee1 : son = son (myAge :10 , myWeight :50.5 , myName :"LDB")
Lee1.disPlays ()//이름:LDB, 나이:10, 무게:50.5
Lee1.disPlay ()//나이:10, 무게:50.5
'Swift' 카테고리의 다른 글
Swift - access modifier(접근 제어) (0) | 2021.11.03 |
---|---|
Swift - extension(확장) (0) | 2021.11.03 |
Swift - overloading(생성자 중첩) (0) | 2021.11.03 |
Swift - window VS Mac (0) | 2021.10.28 |
Swift - Failable Initializers(실패 가능한 생성자) (0) | 2021.10.23 |
Comments