From c2a19262b71b8da74a3ca656572f8926cbab886b Mon Sep 17 00:00:00 2001 From: bytesparallel Date: Thu, 30 Jun 2022 10:53:01 -0500 Subject: [PATCH] saving inheritance and interface practice --- fleet.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/fleet.py b/fleet.py index c900218..796fff5 100644 --- a/fleet.py +++ b/fleet.py @@ -19,13 +19,13 @@ class Fleet(): def addVehicles(self, newVehicleId): self.vehicles.append(newVehicleId) -vehicle1 = Fleet("car", 120, "ground", Fleet.vehicles[0]) +# vehicle1 = Fleet("car", 120, "ground", Fleet.vehicles[0]) -vehicle1.displayAllFleetMembers() +# vehicle1.displayAllFleetMembers() -addVehicle = Fleet("hovercraft", 50, "ground/water", 0) +# addVehicle = Fleet("hovercraft", 50, "ground/water", 0) -vehicle1.displayAllFleetMembers() +# vehicle1.displayAllFleetMembers() @@ -43,11 +43,29 @@ class Vehicle(ABC): self.weightType = "kg" self.weight = 0 -class GroundVehicle(Vehicle): +class GroundVehicleInterface(ABC): + '''Resource on Python interfaces. This is duck typed. https://realpython.com/python-interface/''' + @abstractmethod + def travel(self): + Vehicle.velocity = self.moveGroundVehicle + +class GroundVehicle(Vehicle, GroundVehicleInterface): @abstractmethod def __init__(self, volume): # default value set to true. Many ground vehicles will have trailers or train cars. Modified as needed self.isModular = True + self.moveGroundVehicle = float(input()) + +class Train(GroundVehicle): + def __init__(self, noOfCarsAttached, locomotiveCount): + self.noOfCarsAttached = 1 + self.locomotiveCount = 1 + def displayCarCount(self): + print(self.noOfCarsAttached) + +Train1 = Train(20, 2) + +Train.displayCarCount() \ No newline at end of file