10์ผ์ฐจ: 100DaysOfSwift๐
2464 ๋จ์ด 100daysofswiftswiftiosswiftui
ํด๋์ค์ ์์
์์, ๋ณ์ ๋ฐ ํจ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์๊ฐ ํด๋์ค ์์ฑ ๋ฐ ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
ํด๋์ค๋ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ํ์ ๋ง๋ค ์ ์๋ค๋ ์ ์์ ๊ตฌ์กฐ์ฒด์ ์ ์ฌํ์ง๋ง 5๊ฐ์ง ์ค์ํ ์ฐจ์ด์ ์ด ์์ต๋๋ค.
๋๋ง์ ์์ ๋ง๋ค๊ธฐ
ํด๋์ค์ ๊ตฌ์กฐ์ฒด์ ์ฒซ ๋ฒ์งธ ์ฐจ์ด์ ์ ํด๋์ค์๋ ๋ฉค๋ฒ๋ณ ์ด๋์ ๋ผ์ด์ ๊ฐ ์ ๊ณต๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ, ํด๋์ค์ ์์ฑ์ด ์๋ ๊ฒฝ์ฐ ํญ์ ๊ณ ์ ํ ์ด๊ธฐํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
class FullName {
var firstName: String
var lastName: String
init(firstName: String, lastName: String) {
self.firstName = firstName
self.lastName = lastName
}
}
let FName = FullName(firstName: "Saurabh", lastName: "Chavan")
print(FName.firstName)
//Saurabh
ํด๋์ค ์์
์์์ ํตํด ๊ธฐ์กด ํด๋์ค์์ ์ ํด๋์ค๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์์ฑ๋๋ ์ ํด๋์ค๋ ํ์ ํด๋์ค(์์ ๋๋ ํ์ ํด๋์ค)๋ผ๊ณ ํ๋ฉฐ ํ์ ํด๋์ค๊ฐ ํ์๋๋ ๊ธฐ์กด ํด๋์ค๋ ์ํผ ํด๋์ค(๋ถ๋ชจ ๋๋ ๊ธฐ๋ณธ ํด๋์ค)๋ผ๊ณ ํฉ๋๋ค.
์ฝ๋ก :์ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ํด๋์ค์์ ํด๋์ค๋ฅผ ์์ํฉ๋๋ค.
ํต์ฌ๋ก :
// define a superclass
class Animal {
// properties and methods definition
}
// inheritance
class Dog: Animal {
// properties and methods of Animal
// properties and methods of Dog
}
์ฌ๊ธฐ์๋ Animal ์ํผํด๋์ค์์ Dog ์๋ธํด๋์ค๋ฅผ ์์ํฉ๋๋ค.
์์:
class Animal {
// properties and method of the parent class
var name: String = ""
func eat() {
print("I can eat")
}
}
// inherit from Animal
class Dog: Animal {
// new method in subclass
func display() {
// access name property of superclass
print("My name is ", name);
}
}
// create an object of the subclass
var labrador = Dog()
// access superclass property and method
labrador.name = "Rohu"
labrador.eat()
// call subclass method
labrador.display()
**Output**
I can eat
My name is Rohu
์ 2:
class Sau {
var name:String = ""
}
class Saurabh:Sau {
func display(){
print("My name is",name)
}
}
let FName = Saurabh()
FName.name = "Saurabh"
FName.display()
//output
My name is Saurabh
์ฌ์ ์ ๋ฐฉ๋ฒ
์์ ํด๋์ค๋ ๋ถ๋ชจ ๋ฉ์๋๋ฅผ ์์ฒด ๊ตฌํ์ผ๋ก ๋์ฒดํ ์ ์์ต๋๋ค(์ค๋ฒ๋ผ์ด๋ฉ์ด๋ผ๊ณ ํ๋ ํ๋ก์ธ์ค).
์ํผํด๋์ค์ ์๋ธํด๋์ค ๋ชจ๋์ ๋์ผํ ๋ฉ์๋๊ฐ ์ ์๋์ด ์์ผ๋ฉด ์๋ธํด๋์ค ํด๋์ค์ ๋ฉ์๋๊ฐ ์ํผํด๋์ค์ ๋ฉ์๋๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ์ด๋ฅผ ์ฌ์ ์๋ผ๊ณ ํฉ๋๋ค.
ํต์ฌ๋ก :
class Vehicle {
func displayInfo(){
...
}
}
class Car: Vehicle {
// override method
override func displayInfo() {
...
}
}
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(10์ผ์ฐจ: 100DaysOfSwift๐), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/100rabhcsmc/day-10-100daysofswift-g10ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค