面向对象程序设计:交通工具与道路通行测试
以下是使用面向对象程序设计方法设计的代码:
class Vehicle:
def __init__(self, name):
self.name = name
def can_pass(self, road):
pass
class Car(Vehicle):
def __init__(self, name):
super().__init__(name)
def can_pass(self, road):
if isinstance(road, Railway):
return False
return True
class Bus(Vehicle):
def __init__(self, name):
super().__init__(name)
def can_pass(self, road):
if isinstance(road, Railway):
return False
return True
class Train(Vehicle):
def __init__(self, name):
super().__init__(name)
def can_pass(self, road):
if isinstance(road, Railway):
return True
return False
class Road:
def __init__(self, name):
self.name = name
class Street(Road):
def __init__(self, name):
super().__init__(name)
class Highway(Road):
def __init__(self, name):
super().__init__(name)
class Railway(Road):
def __init__(self, name):
super().__init__(name)
if __name__ == "__main__":
car = Car('Car')
bus = Bus('Bus')
train = Train('Train')
street = Street('Street')
highway = Highway('Highway')
railway = Railway('Railway')
print(car.name + ' can pass ' + street.name + ': ' + str(car.can_pass(street)))
print(bus.name + ' can pass ' + street.name + ': ' + str(bus.can_pass(street)))
print(train.name + ' can pass ' + street.name + ': ' + str(train.can_pass(street)))
print(car.name + ' can pass ' + highway.name + ': ' + str(car.can_pass(highway)))
print(bus.name + ' can pass ' + highway.name + ': ' + str(bus.can_pass(highway)))
print(train.name + ' can pass ' + highway.name + ': ' + str(train.can_pass(highway)))
print(car.name + ' can pass ' + railway.name + ': ' + str(car.can_pass(railway)))
print(bus.name + ' can pass ' + railway.name + ': ' + str(bus.can_pass(railway)))
print(train.name + ' can pass ' + railway.name + ': ' + str(train.can_pass(railway)))
输出结果:
Car can pass Street: True
Bus can pass Street: True
Train can pass Street: False
Car can pass Highway: True
Bus can pass Highway: True
Train can pass Highway: False
Car can pass Railway: False
Bus can pass Railway: False
Train can pass Railway: True
以上代码定义了交通工具类Vehicle及其子类Car、Bus和Train,还定义了道路类Road及其子类Street、Highway和Railway。每个交通工具类都有一个can_pass方法,用于判断该交通工具是否可以在某个道路上通行。在测试部分,创建了不同类型的车辆和道路,并显示了不同车辆在不同道路上的通行情况。
原文地址: https://www.cveoy.top/t/topic/KsQ 著作权归作者所有。请勿转载和采集!