面向对象的三大特性
2017-09-06 00:28
197 查看
封装
封装性:将内容封装到某个地方,以后再去调用被封装在某处的数据;
1. 将内容封装到某处;
2. 从某处调用被封装的内容;
对于面向对象的封装来说,就是使用构造方法将内容封装到对象里面,然后通过对象直接调用或者self调用被封装的数据。
继承
继承,即子继父业,子类是派生类,父类是基类
继承分为单继承和多继承,即:
新式类和经典类的不同,在于对方法搜索顺序的不同。新式类采用广度优先继承,而经典类采用深度优先继承。以下是一个新式类和经典类分别作为基类的例子:
继承的优点:
建造系统中的类,避免重复操作
新类经常是基于已经存在的类,这样就可以提升代码的复用程度
多态
多态是指:不同的对象可以调用相同的方法然后得到不同的结果。不过需要注意以下两点:
如果子类调用的方法,子类没有,父类有,运行父类
如果子类调用的方法,子类有,父类也有,只运行子类的
封装性:将内容封装到某个地方,以后再去调用被封装在某处的数据;
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)
相关文章推荐
- C++面向对象三大特性
- 面向对象的三大特性
- 面向对象的三大特性
- 黑马程序员——OC—面向对象的三大特性
- php学习笔记------[php中面向对象三大特性之一[继承性]的应用]
- java面向对象三大特性-继承
- 黑马程序员——面向对象的三大特性(3)
- Java面向对象的三大特性之--《多态》
- 黑马程序员-iOS学习日记(四)面向对象-三大特性
- 面向对象三大特性概述[封装、继承、多态](转)
- 面向对象三大特性之 继承
- javase面向对象三大特性之继承
- 面向对象三大基本特性,五大基本原则
- Java学习笔记二十一:Java面向对象的三大特性之继承
- 面向对象的三大特性
- PHP面向对象的的三大特性之继承性
- [.net 面向对象编程基础] (12) 面向对象三大特性——继承
- 谈谈Java面向对象的三大特性
- 面向对象的三大特性之(一)封装
- 4月28日 面向对象三大特性之继承