Python中的类,继承和多态

对象:

面向对象编程 是最有效的软件编写方法之一。在面向对象编程中,你编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。类来创建对象被称为实例化。

类:

        可以简单理解为模块,就是不同的分类,像食物、车、学习等都属于不同的类型,简称类。那么食物有辣的、甜的等;车有客车、轿车;学习有学习数学、学习python等,它们分别是每个不同类的不同的属性和行为。下面以代码为例:

class Dog(): 

    """一次模拟小狗的简单尝试"""
    def __init__(self, name, age):

    """初始化属性name和age"""
    self.name = name
    self.age = age

    def sit(self):
    """模拟小狗被命令时蹲下"""
    print(self.name.title() + " is now sitting.")

    def roll_over(self):
    """模拟小狗被命令时打滚"""
    print(self.name.title() + " rolled over!")

此处为dog类,它包括名字和年龄两个属性,通过__init__()方法给属性name,age赋值(以下简述一下__init()方法)

__init__()

        学过java的应该知道,该方法相当于构造方法,在python创建实例时自动执行不需手动调用,而且形参self是必须的,至于其他参数是可选的,如上例所示,name和age便是可有可无的

还接着上例分析,__init()方法将name和age赋值后,在下边定义了两个函数,函数在类中被称为方法,self引用自身是必选的,分别是小狗蹲下和打滚的两种行为

继承:

       编写类时并非总是要从空白开始。如果要编写的类是另一个现成类的特殊版本,可使用继承。

子类创建实例赋值时通过__init__()方法,并通过关键字super()调用

例如:

class Passenger_car():#定义客车类
    def __init__(self,weight,operate):#相当于构造方法,用于赋值,python创建实例时自动调用
        self.weight = weight#定义重量变量并赋值
        self.operate = operate#定义操作对象并赋值

    def out(self):#打印汽车属性的方法
        print("客车的重量是:"+self.weight+','+"驾驶方法是:"+self.operate+'\n')#打印语句

sm_car = Small_car('125kg','踩油门')#创建小汽车实例并传值
sm_car.out()#调用小汽车对象的out方法

pas_car = Passenger_car('521kg','转动方向盘')#创建客车实例并传值
pas_car.out()#调用客车对象的out方法

class School_car(Passenger_car):
    def __init__(self,weight,operate,mark):
        super().__init__(weight,operate)
        self.mark = '东风路28路公交车'
    def out(self):
        print("这是校车")

校车是客车的子类,它有不同于父类Passenger_car的属性mark,并重写了父类的out方法。

        继承可完全理解为扩展以及区别,有了继承不会让我们编写程序时总是重复不必要的代码,减少工作量。

多态:

        多态和Java程序的多态其实相差不大,多态即一种实物的多种形态,因为python和java不同的是,python不支持重载,而且python中多态体现的并不明显。继承中每个对象都有自己单独的方法,避免有重名的,如果我们创建实例时 要调用该方法,少则还好,如果是上百个上千个呢,此时多态便方便了我们不少。此时我们可以对象封装的一个函数中,在循环遍历每一个对象,调用方法,这种做法便节约了大量的时间和没必要的臃肿代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值