LSP(Liskov Substitution Principle)
- 자식 클래스는 언제든지 부모 클래스로 대체할 수 있어야 합니다.
- 상호 호환이 가능해야 한다
- 부모가 가능하다? → 자식도 가능하다
class Car:
def __init__(self, brand, model, year):
self.brand = brand
self.model = model
self.year = year
def get_brand(self):
return self.brand
def get_model(self):
return self.model
def get_year(self):
return self.year
class ElectricCar(Car):
def __init__(self, brand, model, year, battery):
super().__init__(brand, model, year)
self.battery = battery
def get_battery_size(self):
return len(self.battery)
class CarLogger:
def log(self, car):
print(f"Car: {car.get_brand()} {car.get_model()} ({car.get_year()}) logged")
- ElectricCar 클래스는 Car 클래스의 자식 클래스이며, Car클래스의 역활을 그대로 수행할수 있음.
- 따라서 LSP을 잘 지키고 있음.