编程语言
首页 > 编程语言> > Python面向对象的编程思想(一):封装继承多态

Python面向对象的编程思想(一):封装继承多态

作者:互联网

这一块内容对学习过面向对象思想的同学比较简单,废话不多说,直接来看案例。

封装

"""
使用python,选择小汽车和客车为对象,使用类实现它们的属性和方
法(汽车的重量属性,驾驶的方法),并打印属性
"""


class car:
    # 构造方法,对属性进行初始化
    def __init__(self, name, color, wheel_number, speed):
        self.color = color
        self.name = name
        self.wheel_number = wheel_number
        self.speed = speed

    # 打印属性信息
    def print_car_info(self):
        print("{}有{}个轮子,颜色是{},速度是{}km/h".format(self.name, self.wheel_number, self.color, self.speed))

    # 公用方法
    def drive_car(self):
        print("车子在开")


if __name__ == '__main__':
    # 实例化小汽车对象
    sedan = car("小汽车", "红色", 4, 100)
    sedan.print_car_info()
    sedan.drive_car()

    # 实例化卡车对象
    truck = car("大卡车", "蓝色", 6, 120)
    truck.print_car_info()
    truck.drive_car()

打印结果:

小汽车有4个轮子,颜色是红色,速度是100km/h
车子在开
大卡车有6个轮子,颜色是蓝色,速度是120km/h
车子在开

继承

import Origin

"""
对第一个问题改写:继承客车的属性和方法,改造为公交车,输入的
名字为:“东风路28路公交车”,并打印(也包括属性和驾驶的方法)
"""


# bus子类,继承car类
class bus(Origin.car):
    def __init__(self, name, color, wheel_number, speed):
        super().__init__(name, color, wheel_number, speed)


if __name__ == '__main__':
    # 实例化bus对象
    a_bus = bus("东风路28路公交车", "绿色", 6, 120)
    # 调用父类的方法
    a_bus.print_car_info()
    # 调用父类的方法
    a_bus.drive_car()

打印结果:

东风路28路公交车有6个轮子,颜色是绿色,速度是120km/h
车子在开

多态

from Origin import car

"""
使用多态实现28路、906路、B32路公交车的驾驶方法并打印
"""


# 28路公交车继承自car类,对drive_car方法重写实现多态
class Twenty_Eight_bus(car):
    def __init__(self, name, color, wheel_number, speed):
        super().__init__(name, color, wheel_number, speed)

    def drive_car(self):
        print("{}在开(用重写实现多态)".format(self.name))


# 906路公交车继承自car类,对drive_car方法重写实现多态
class Nine_Zero_Six_bus(car):
    def __init__(self, name, color, wheel_number, speed):
        super().__init__(name, color, wheel_number, speed)

    def drive_car(self):
        print("{}在开(用重写实现多态)".format(self.name))


# B32路公交车继承自car类,对drive_car方法重写实现多态
class B_Three_Two_bus(car):
    def __init__(self, name, color, wheel_number, speed):
        super().__init__(name, color, wheel_number, speed)

    def drive_car(self):
        print("{}在开(用重写实现多态)".format(self.name))


if __name__ == '__main__':
    Twenty_Eight_bus = Twenty_Eight_bus("东风路28路公交车", "绿色", 6, 120)
    # 打印方法
    Twenty_Eight_bus.drive_car()
    Nine_Zero_Six_bus = Nine_Zero_Six_bus("906路公交车", "黄色", 6, 120)
    # 打印方法
    Nine_Zero_Six_bus.drive_car()
    B_Three_Two_bus = B_Three_Two_bus("B32路公交车", "红色", 6, 120)
    # 打印方法
    B_Three_Two_bus.drive_car()

打印结果:

东风路28路公交车在开(用重写实现多态)
906路公交车在开(用重写实现多态)
B32路公交车在开(用重写实现多态)

标签:__,name,Python,car,self,多态,drive,面向对象,bus
来源: https://blog.csdn.net/csdn8668/article/details/122294606