首页 > 代码库 > python第三十一天-----类的封装、继承,多态.....

python第三十一天-----类的封装、继承,多态.....

封装

封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。

封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

 

技术分享
 1 class dog(object):
 2     nationality=ch#公有属性
 3     def __init__(self,name,food,leven):#构造函数,方法,初始化方法
 4         self.name=name #实例指针,指向 属性  对象成员
 5         self.food=food
 6         self.leven=leven
 7         self.__haot=hhh#前面双下划线定义为私有属性
 8 
 9     def get_hoat(self):#定义方法为私有属性提供接口
10         return self.__haot
11     def say(self):#类中的方法  都是公有方法
12         print(hello,my name is ,self.name)
13     def eat(self,foods):
14         print("my food is %s,but my eat %s"%(self.food,foods))
15     def leve(self):
16         print("my leve is ",self.leven)
17 
18     def __del__(self):
19         print("删除中...")
20 
21 
22 d=dog("liili",gl,"5")
23 d.say()
24 d.eat(kkk)
25 d.leve()
26 print(d.get_hoat())#通用接口访问私有属性
27 
28 print(d._dog__haot)#强制访问私有属性
29 print(d.nationality)
30 
31 dog.nationality=chan
32 print(d.nationality)
33 d.nationality=us
34 print(d.nationality)
View Code

 

继承

继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

通过继承创建的新类称为“子类”或“派生类”。

被继承的类称为“基类”、“父类”或“超类”。

 

技术分享
 1 class studen(object):#定义类  学生 基类
 2     def __init__(self,name,age,clas):#名字,年龄,班级
 3         self.name=name
 4         self.age=age
 5         self.clas=clas
 6     def talk(self):
 7         print(%stalk one.....%self.name)
 8     def walk(self):
 9         print(%s walk....%self.name)
10     def info_user(self):
11         print(name is %s, age is %s,clas is  %s%(self.name,self.age,self.clas))
12 
13 class clas_one(studen):#继承studen
14     def __init__(self,name,age,clas,score):#重构构造方法
15         #studen.__init__(self,name,age,clas)#先继承, 再重构
16         super(clas_one,self).__init__(name,age,clas)#新式类
17         self.score=score#增加新对象成员
18     def talk(self):#重写方法
19         print(is new talk ,%s%self.name)
20     def score_info(self):#新增加 子类方法
21         print(self.score,)
22 
23 p=clas_one(学生一,36,一年三班,178)
24 p.talk()
25 p.score_info()
View Code

多态

 

技术分享
 1 class Animal(object):
 2     def __init__(self,name):
 3         self.name=name
 4     def talk(self):
 5         raise NotImplementedError(提示出错)
 6 
 7 
 8 class c(Animal):#继承Animal
 9     def talk(self):
10         print(%s 1111%self.name)
11 
12 class d(Animal):#继承Animal
13     def talk(self):
14         print(%s 2222%self.name)
15 
16 
17 def talk_all(obj):#用函数来模拟多态
18     obj.talk()
19 
20 c1=c()
21 d1=d("")
22 
23 talk_all(c1)
24 talk_all(d1)
View Code

 

python第三十一天-----类的封装、继承,多态.....