superclass - 부모 클래스
subclass - 자식클래스
* 단일 상속 : 자식클래스는 하나의 부모 클래스만 상속받을 수 있다.
* 콜론 다음 뭔가 여러 개 있다면 나머지는 채택(adopt)된 프로토콜이다.
class 자식:부모 { }
class 클래스명:부모명, 프로토콜명1, 프로토콜명2, .... { }
import Foundation
class Dog{
var age : Int
var height : Double
func display(){
print("나이=\(age), 키=\(height)")
}
init(age: Int, height: Double){
self.age = age
self.height = height
}
}
class Puppy : Dog {
var name : String
func display1() {
print("이름=\(name), 나이=\(age), 키=\(height)")
}
init(age: Int, height: Double, name: String){
self.name = name
super.init(age:age, height:height)
}
}
var jindo : Puppy = Puppy(age:6, height:60, name:"멍멍이")
jindo.display1() //이름=멍멍이, 나이=6, 키=60.0
jindo.display() //나이=6, 키=60.0
override 코드
import Foundation
class Dog{
var age : Int
var height : Double
func display(){
print("나이=\(age), 키=\(height)")
}
init(age: Int, height: Double){
self.age = age
self.height = height
}
}
class Puppy : Dog {
var name : String = "강아지"
override func display() {
print("이름=\(name), 나이=\(age), 키=\(height)")
}
init(age: Int, height: Double, name: String){
super.init(age:age, height:height)
self.name = name
}
}
var jindo : Puppy = Puppy(age:6, height:60, name:"멍멍이")//이름=멍멍이, 나이=6, 키=60.0
jindo.display()
부모 클래스의 메서드가 자식 클래스에서 override 된 경우 자식이 우선이다!!
overloading은 같은 클래스 내 동일한 이름의 메서드를 매개변수의 개수와 자료형이 다르면 여러 개 정의할 수 있는 것
overriding은 상속관계에서 자식 쪽 클래스에서 override 붙이면 부모 쪽 메서드와 똑같은 메서드를 만들 수 있음. 이 경우 자식 메서드가 우선됨
참고 : iOS프로그래밍기초(21년-2학기) 한성현 교수님 강의 및 강의 자료 변형, 요약
'iOS > Swift이론' 카테고리의 다른 글
Swift) iOS프로그래밍 : 문법정리 (0) | 2021.10.17 |
---|---|
Swift)iOS프로그래밍 : extension, access modifier, enum (0) | 2021.10.15 |
Swift) iOS 프로그래밍 : 클래스메서드, init(), 프로퍼티, 메서드 중첩, (0) | 2021.10.07 |
Swift) iOS 프로그래밍 함수, 1급객체, 클로저, 클래스 (0) | 2021.10.05 |
iOS guard, switch case, 함수 (0) | 2021.09.28 |