μμμ μ¬μ μ μλ―Έ
μ μ°μ μμλ°λ€μ λν μλ―Έλ₯Ό μ΄ν΄νλκ°?
λΆλͺ¨λμκ² λΆλͺ¨λμ΄ κ°κ³ μλ μ¬μ°μ μμμ΄ μμλ°κ² λμ΄ λΆλͺ¨μ μ¬μ°μΌλ‘ μλ‘μ΄ μΌμ μμν μ μκ² λλ€. μ΄λ¬ν μλ―Έκ° νλ‘κ·Έλλ°μμ, νμ΄μ¬μμ μ νν λΆν©νλ€.
νμ΄μ¬μμ μμ
κΈ°μ‘΄μ μ½λλ₯Ό μ΄μ©νμ¬ μλ‘μ΄ κΈ°λ₯μ μννκ² ν μ μλ κ²μ΄ λ°λ‘ μμμ΄λΌκ³ νλλ°, μ¬κΈ°μ κΈ°μ‘΄μ μ½λλ₯Ό λΆλͺ¨ ν΄λμ€ λλ μνΌ ν΄λμ€, λ² μ΄μ€ ν΄λμ€λΌκ³ λΆλ₯΄κ³ μλ‘μ΄ κΈ°λ₯μ μννλ μ½λλ₯Ό μμ ν΄λμ€, μλΈ ν΄λμ€, νμλ ν΄λμ€λΌκ³ νλ€.
λΆλͺ¨ ν΄λμ€ Aκ° μκ³ Aλ κ±Έμ μ μκ³ , λ§μ ν μ μλ€.
class Father():
def walk(self):
print('can walk')
def talk(self):
print('can talk')
μ΄λ° μνμμ μμ ν΄λμ€κ° μμ λ°μλ€κ³ ν΄λ³΄μ.
class Father():
def walk(self):
print('can walk')
def talk(self):
print('can talk')
class Son(Father):
def run(self):
print('can run')
μμμ λ°κΈ° μν΄μλ ν΄λμ€λ₯Ό μ μν λ 맀κ°λ³μλ‘ μμμ ν΄λμ€ μ΄λ¦μ μΈμλ‘ λ£μ΄μ€λ€.
μ΄λ κ² μμμ λ°κ²λλ€λ©΄ Son
ν΄λμ€λ Father
μ λͺ¨λ μμλ₯Ό μ¬μ©ν μ μκ² λλ€.
class Father():
def walk(self):
print('can walk')
def talk(self):
print('can talk')
class Son(Father):
def run(self):
print('can run')
son = Son()
son.talk()
son.run()
son.walk()
λ€μ€ μμ
Pythonμ λ€μ€ μμμ νμ©νλ€. λ€μ€ μμμ μ΄μ©νλ©΄ μ¬λ¬ ν΄λμ€μ μμλ₯Ό μ¬μ©ν μ μλ€.
Father ν΄λμ€
class Father():
def walk(self):
print('can walk')
def talk(self):
print('can talk')
Mother ν΄λμ€
class Mother():
def eat(self):
print('can eat')
def smile(self):
print('can smile')
Father ν΄λμ€μ Motherν΄λμ€λ₯Ό μμ±νλλ° μ΄ λ μμλ₯Ό λͺ¨λ μ¬μ©νκ³ μΆλ€λ©΄ λ€μ€ μμμ μ΄μ©νλ©΄ λλ€.
class Father():
def walk(self):
print('can walk')
def talk(self):
print('can talk')
class Mother():
def eat(self):
print('can eat')
def smile(self):
print('can smile')
class Son(Father, Mother):
def run(self):
print('can run')
son = Son()
son.talk()
son.run()
son.walk()
son.eat()
son.smile()
λ€μ€ μμμ λ°μ λλ μμ λ°λ ν΄λμ€μ 맀κ°λ³μμ λΆλͺ¨ ν΄λμ€μ μ΄λ¦μ λ£μ΄μ€λ€.
λ©μλ μ€λ²λΌμ΄λ
μ€λ²λΌμ΄λλ? Override
μ€λ²λΌμ΄λλ λ©μλμ μ΄λ¦μ κ°μλ° λ€λ₯Έ κΈ°λ₯μ μννλ λ©μλλ₯Ό λ»νλ€. OOPμ νΉμ§μ€ νλμΈ λ€νμ±μ μ§μνκΈ° μν΄μ λμ¨ κΈ°λ₯μ΄λ€.
μ¬μ©λ²
μμμ λ§ νλ― μμμ λ°κ²λλ©΄ μμ λ°λ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ λͺ¨λ κΈ°λ₯μ μ¬μ©ν μ μλ€λΌκ³ νλ€. μ°λ¦¬λ λΆλͺ¨ν΄λμ€μ μλ λ©μλλ₯Ό μ€λ²λΌμ΄λ ν΄λ³Ό μμ μ΄λ€.
class Hello_bot():
def __init__(self):
pass
def greeting(self):
print('Hello')
class Hello_Robot(Hello_bot):
def greeting(self):
print('Hello world')
robot = Hello_Robot()
robot.greeting()
μμμ 보면 greeting
λΌλ λ©μλκ° λΆλͺ¨μλ μκ³ μμμλ μλ€. μ΄λ¬ν κ²½μ°λ₯Ό μ€λ²λΌμ΄λ©μ΄λΌκ³ νλλ°, κ²°κ³Όλ μ΄λ€ λ©μλκ° μ£ΌλκΆμ κ°μ Έκ°κΉ?
λ°λ‘ μμ ν΄λμ€μμ μ μν λ΄μ©μ κ°μ Έκ°λ€. μ΄λ₯Ό λ©μλ μ¬μ μλΌκ³ λ νλ€.
λΆλͺ¨ν΄λμ€ μ΄μ©νκΈ° : super
μμμ λ°κ²λλ©΄ λΆλͺ¨ ν΄λμ€μ μλ λ©μλλ₯Ό μΆκ°νκ±°λ, λΆλͺ¨ ν΄λμ€μ μλ λ©μλλ₯Ό μ¬μ μν μ μλ€κ³ νλλ° λΆλͺ¨ ν΄λμ€μμ λμλ°μ μ μλ λ°©λ²μ΄ νλ λ μλ€. λ°λ‘ super
ν€μλλ₯Ό μ΄μ©νμ¬ λΆλͺ¨ ν΄λμ€μ λ©€λ²λ₯Ό μ‘°μν μ μλ€.
class Robot():
def __init__(self, name):
self.name = name
def greeting(self):
print('Hi my name is: ', self.name)
Robot μ΄λΌλ ν΄λμ€μλ μ΄λ¦μ μ μ₯νλ μμ±μ, κ·Έλ¦¬κ³ μΈμ¬λ₯Ό νλ λ©μλκ° μ μλμ΄ μλ€.
class Game_Robot(Robot):
def __init__(self, name):
super().__init__(name)
μμ ν΄λμ€μμ super().__init__(name)
μ μ΄μ©νμ¬ λΆλͺ¨μ μλ __init__(name)
μ μ κ·Όνλ€.
robot = Game_Robot('jang')
robot.greeting()
>>>
Hi my name is: jang
μ΄λ κ² νμ¬ λΆλͺ¨ ν΄λμ€μ μλ μμ±μμ μ κ·Όνμλ€.
'π€·πΌββοΈ Etc... > - C, C++, Python, Android' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python κ³ κΈ]: κ°μ²΄μ ν΄λμ€(4) ν΄λμ€ λ³μ vs μΈμ€ν΄μ€ λ³μ (0) | 2019.12.08 |
---|---|
Python κ³ κΈ: κ°μ²΄μ ν΄λμ€(3) μ 보 μλ (0) | 2019.12.08 |
Python κ³ κΈ: κ°μ²΄μ ν΄λμ€(1) μ λ¬ΈνκΈ° (0) | 2019.12.08 |
Python μμΈλ₯Ό λ€λ€λ³΄μ. (0) | 2019.12.07 |
Python Generator & Decorator νμ΄μ¬ μ λλ μ΄ν°μ λ°μ»€λ μ΄ν°λ? (0) | 2019.12.07 |
λκΈ