๐ŸŽ iOS/Swift

[Swift] Class์™€ Inheritance(์ƒ์†)

Inheritance

A parent class = 'Superclass'

A child class = 'Subclass'

์Šˆํผ ํด๋ž˜์Šค ์—†์ด ์ •์˜ํ•œ ํด๋ž˜์Šค = 'Base class'

 

class Bicycle: Vehicle {
	var hasBasket = false
}

let bicycle = Bicycle()
bicycle.hasBasket = true

 

Override

property์™€ method๋Š” ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์›๋ž˜ ์žˆ๋˜ ์†์„ฑ์— ์˜ฌ๋ผํƒ€์„œ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ. 

ํ•จ์ˆ˜ ์ด๋ฆ„ ์˜†์— override ํ‚ค์›Œ๋“œ๋ฅผ ๋ถ™์ด๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

class Train: Vehicle{
	override func makeNoice(){
    	print("Choo Choo!")
    }
}

 

Reference

 

class Person{
	let name: String
    var age: Int
    
    init(name: String, age: Int){
    	self.name = name
        self.age = age
    }
}

var jack = Person(name: "Jack", age: 24)
var myFriend = jack

jack.age += 1 

// jack.age = 25
// myFriend.age = 25

 

jack ์•ˆ์— ๋“ค์–ด ์žˆ๋Š”๊ฒŒ ๊ฐ’์ด ์•„๋‹ˆ๋ผ ๊ฐ’์˜ ์ฃผ์†Œ์ด๋‹ค. ์ฆ‰, ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ •๋ณด ๋‘ ๊ฐœ๊ฐ€ ์ƒ๊ธด ๊ฒƒ. 

 

 

 

Class๋ฅผ ์จ์•ผํ•  ๋•Œ?

 

์–ด๋–ค ํ•˜๋‚˜์˜ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์ฝ๊ณ  ์จ์•ผํ•  ๋•Œ structure๊ฐ€ ์•„๋‹Œ class๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. ํ˜น์€ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์จ์•ผํ•œ๋‹ค. ์ฆ‰ ํด๋ž˜์Šค๋„ ๊ณต๋ถ€ํ•˜์ž ใ…Žใ…Ž