频道栏目
首页 > 资讯 > 其他 > 正文

面向对象的三大特性

17-09-06        来源:[db:作者]  
收藏   我要投稿

封装
封装性:将内容封装到某个地方,以后再去调用被封装在某处的数据;
1. 将内容封装到某处;
2. 从某处调用被封装的内容;
对于面向对象的封装来说,就是使用构造方法将内容封装到对象里面,然后通过对象直接调用或者self调用被封装的数据。

#学生类
class Student(object):
    def __init__(self,name,age,gender,classes,number):
        self.name=name
        self.age=age
        self.gender=gender
        self.classes=classes
        self.number=number
    def study(self):
        pass
    def pay(self):
        pass
    def information(self):
        pass

继承
继承,即子继父业,子类是派生类,父类是基类
继承分为单继承和多继承,即:

class(父类名称)                   #单继承
class(父类名称1,父类名称2...)      #多继承

新式类和经典类的不同,在于对方法搜索顺序的不同。新式类采用广度优先继承,而经典类采用深度优先继承。以下是一个新式类和经典类分别作为基类的例子:

#class D(object):            # 新式类
class D:                      # 经典类
    def eat(self):
        print "D eating"
class C(D):
    def eat(self):
        print "C eating"
class B(D):
    def run(self):
        print "runing"
    def eat(self):
        print "B eating"
class A(B,C):
    pass

继承的优点:

建造系统中的类,避免重复操作 新类经常是基于已经存在的类,这样就可以提升代码的复用程度

多态
多态是指:不同的对象可以调用相同的方法然后得到不同的结果。不过需要注意以下两点:

如果子类调用的方法,子类没有,父类有,运行父类 如果子类调用的方法,子类有,父类也有,只运行子类的
class Animal(object):  # Animal:类,盖房的图纸
    def __init__(self, name, age):   #self实质是实例化后的对象本身,构造函数
        self.__name = name  # self.name = "taoqi",name是属性,__name是私有属性
        self.__age = age  # self.age = 6

    def setName(self,name):
        self.__name = name

    def getName(self):
        print self.__name

    def run(self):
        print "%s is running" % (self.__name)

    def eat(self):
        print "%s is eating......" %(self.__name)

    def __del__(self):
        print "is delete......."

class Cat(Animal):  # Cat类继承Animal类,父类/基类(Animal),子类/派生类(Cat)
    def __init__(self):
        super(Cat, self).__init__()

class Dog(Animal):
    pass

tom = Animal("fentiao","west")
del(tom)
相关TAG标签
上一篇:C# TableLayoutPanel让一个控件占两行或者两列
下一篇:Git常用的几个命令
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站