파이썬에서 클래스 상속을 통해 사용할 수 있는 추가적인 기능들은 객체 지향 프로그래밍의 깊은 이해와 유연성을 제공합니다.오늘은 상속을 활용할 수 있는 몇 가지 주요 기능들을 소개합니다
클래스를 생성하고 상속을 하는 방법은 다음 포스팅을 참조 하세요
https://stickode.tistory.com/1147
1. 메서드 오버라이딩 (Method Overriding)
상속받은 자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용할 수 있습니다. 이를 통해 자식 클래스는 상속받은 메서드의 기능을 확장하거나 변경할 수 있습니다.
class Parent:
def greet(self):
print("Hello from the Parent class.")
class Child(Parent):
def greet(self):
print("Hello from the Child class.")
2. super() 함수
super() 함수를 사용하여 부모 클래스의 메서드를 호출할 수 있습니다. 이는 메서드 오버라이딩을 할 때, 부모 클래스의 기능을 유지하면서 추가적인 기능을 구현할 때 유용합니다.
class Parent:
def __init__(self, name):
self.name = name
class Child(Parent):
def __init__(self, name, age):
super().__init__(name) # 부모 클래스의 __init__ 메서드 호출
self.age = age
3. 다중 상속 (Multiple Inheritance)
파이썬은 하나의 자식 클래스가 여러 부모 클래스로부터 상속받을 수 있는 다중 상속을 지원합니다. 이를 통해 다양한 기능을 조합하여 사용할 수 있습니다.
class Mother:
def eye_color(self):
return "brown"
class Father:
def hair_color(self):
return "black"
class Child(Mother, Father):
pass
child = Child()
print(child.eye_color()) # "brown"
print(child.hair_color()) # "black"
4. 메서드 확장 (Extending Methods)
super() 함수를 사용하여 부모 클래스의 메서드를 호출하고, 자식 클래스에서 해당 메서드를 확장할 수 있습니다. 이는 부모 클래스의 기능은 그대로 유지하면서, 추가적인 기능을 구현하고자 할 때 사용됩니다.
class Parent:
def greet(self):
print("Greetings from the Parent class.")
class Child(Parent):
def greet(self):
super().greet() # 부모 클래스의 greet 메서드 호출
print("Greetings from the Child class.")
5. 다형성 (Polymorphism)
다형성은 서로 다른 클래스의 객체들이 동일한 메서드 이름을 공유하지만, 다른 행동을 할 수 있도록 하는 기능입니다. 이는 상속과 메서드 오버라이딩을 통해 구현됩니다.
class Dog:
def speak(self):
return "Woof!"
class Cat:
def speak(self):
return "Meow!"
# 다형성을 이용한 함수
def animal_sound(animal):
print(animal.speak())
dog = Dog()
cat = Cat()
animal_sound(dog) # "Woof!"
animal_sound(cat) # "Meow!"
이러한 기능들은 파이썬의 객체 지향 프로그래밍에서 중요한 역할을 하며, 복잡한 문제를 해결하는 데 있어 유연하고 효율적인 코드 작성을 가능하게 합니다.
'Python' 카테고리의 다른 글
[Python] 파이썬에서 쓰레드 사용하기 (0) | 2024.04.25 |
---|---|
[Python] getattr() 활용하기 (0) | 2024.04.16 |
[Python]파이썬에서 클래스 만들기와 상속하기 (0) | 2024.03.29 |
[Python] 페이지네이션으로 업비트에서 비트코인의 모든 1분봉 가져오기 (0) | 2024.03.13 |
[Python] FastAPI를 사용해서 서버 만들기 (0) | 2024.03.03 |