Python的简介:第9天 - 类继承(OOP)
#网络开发人员 #初学者 #python #oop

嗨,我是一个位于纽约市的Web开发人员,记录了我与React,React Native和Python的旅程,所有人都可以看到。请关注我的dev.to profo或my twitter以获取更新,如果您有疑问,请随时接触。感谢您的支持!

今天,我们将通过讨论面向对象的编程的第三个主要支柱,继承

根据Wikipedia的说法,“继承是基于对象或类基于另一个对象(基于原型的继承)或类(基于类的继承)的机制,保留了相似的实现”。换句话说,当面向对象的编程语言允许继承时,我们可以创建从父类继承方法和数据的对象。这使得编写来自父母的新类,但也具有自己的功能或父母不存在的数据。

让我们以Vehicle类的例子为例。也许有一些共同的属性和能力,无论您拥有哪种车辆,这都是真的。例如,所有车辆都需要能量。为了简化,我们会说他们都在加油,并且都有一个品牌名称。

这是一种使用构造函数的Toyota Camry实例的示例,该实例使用构造函数设置每加仑,品牌名称和型号的英里。它还具有打印车辆品牌和型号的Getter方法。

class Vehicle:
    def __init__(self, mpg, brand, model):
        self.mpg = mpg
        self.brand = brand
        self.model = model

    def get_vehicle_name(self):
        print(f"{self.brand} {self.model}")

现在,我们可以创建子类,从车辆类中继承所有方法和数据,但也有其自己独特的数据和方法。让我们做一个Scooter类,这是车辆的子集,并继承了Vehicle类。

class Scooter(Vehicle):
    def __init__(self, mpg, color):
        super().__init__(mpg, "Vespa", "PX")
        self.__color = color

    def get_color(self):
        print("f{self.__color}")

在踏板车类中,我们通过Vehicle类中的类别,以便踏板车继承父母的数据和方法。然后,在构造函数中,我们可以使用super()调用来调用父构建器。就我们的踏板车类而言,我一直希望踏板车成为Vespa Brand PX型号踏板车,因此我将其传递给那些并限制用户能够制作自己的踏板车。然后,我在构造函数中设置了一个私有变量__color,因为我们都知道Vespa所有者非常关心他们的华丽颜色。

喜欢在车辆组件上,mpgbrandmodel都是在构造函数方法中设置的,但是我们也有一种Scooter儿童get_color()的唯一方法,我们可以用它来打印车辆的颜色。

练习您可以通过制作一个名为Truck的新课程来练习班级继承,该课程继承了Vehicle class,又可以在构造函数中获得has_trailer_hitch布尔值,并且具有打印Has trailer hitch或getter方法Does not have trailer hitch

如果您喜欢这样的项目,并且想了解更多信息,请查看我的Twitter @stonestwebdev,我会跟随!明天见另一个项目。