Python面向对象的三大特性

其实开始在大一下学Java时候学过面向对象,但是当时没有深入去探讨加上后来遗忘,面向对象就多多少少不会了。现如今学python正好学到了这里,我们就来对面向对象三大特性作个理解性的总结。

首先,面向对象三大特性:继承,封装,多态。要理解三个特性,必须知道啥子叫对象,啥子叫类。打个比方,你要盖房子,手里面有设计图纸,这就是类,相当于你要做的是什么事情;你的设计方案里面未建的房子,要拆的房子,建好的房子,这就是对象;你要建房的过程,建房的手段,这就是方法。

那么啥子叫继承?

继承:类似于遗传,父对象(父类)具有的属性或者方法,子对象(子类)也可以有这些属性与方法。继承又分为单继承,多继承。单继承简单地说就是父类自我繁殖了一个子类,子类方法可以遗传父类,也可以自我重构,变得和父类不一样;多继承就是子类有多个“父亲”,继承了多个父类的方法和属性,但是如果遇到重名问题,比方说有几个父类都有add方法,子类要用这个add方法,就要通过一条继承链,子类继承父类有先后顺序,子类使用的add方法就是通过这条继承链找到的第一个父类的add方法。

那么啥子叫封装?

简单地说,就是把属性和方法放到一个类里面,再通过对象访问属性和方法。那么为什么会用到封装?

可以避免重复创造函数(方法),提高代码复用性和可扩展性。面向过程编程可以理解为:所有变量与方法都是暴露在外面,一个程序中,所有方法共享全局变量(属性),势必会造成修改异常,所以把所有属性与方法封装在类(黑箱子)的内部,类属性相当于类内部的全局变量,实例属性相当于方法内部的局部变量。只需通过类来创建不同实例a,b,c,d,实例可以将这些属性方法私有化,实例怎么折腾都行。

例子:

class Cat:
    '''定义一个Cat类'''

    #初始化对象
    def __init__(self,new_name,new_age):# self.属性 = 形参
     self.name = new_name
     self.age = new_age

    def __str__(self):
        return ("%s的年龄是:%d"%(self.name,self.age))

    #方法
    '''吃'''
    def eat(self):
        print("猫咪在吃鱼 。。。")
        return "haochi"

    '''喝'''  
    def drink(self):
        print("猫咪在喝kuoluo。。。")
        return "cheer"
    '''介绍'''
    def introduce(self):
        print("%s的年龄是:%d"%(self.name,self.age))
        

#创建对象(实例)
tom = Cat("汤姆",15)
superBlueCat  =  Cat("超威蓝猫",5)
print(tom)
print(superBlueCat)
print(tom.eat())
print(superBlueCat.drink())

那么啥子叫多态?

同一种方法,不同的对象调用该方法,实现功能不一样。举个例子,python里面的“+”方法,如果是1+2,实现的就是整型数的相加,如果是'a'+'b',结果就是ab,就是字符串的拼接,如果是[a]+[b],就是列表拼接。这就体现了多态的思想。

例子:

class Bird:
    def move(self, field):
        print('鸟在%s上自由地飞翔' % field)
class Dog:
    def move(self, field):
        print('狗在%s里飞快的奔跑' % field)
# x变量被赋值为Bird对象
x = Bird()
# 调用x变量的move()方法
x.move('天空')
# x变量被赋值为Dog对象
x = Dog()
# 调用x变量的move()方法
x.move('草地')

以上是我的理解,如有不准确还请指正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值