python第三十一天-----类的封装继承,多态.....
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
继承
继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
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()
多态
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)
以上是关于python第三十一天-----类的封装继承,多态.....的主要内容,如果未能解决你的问题,请参考以下文章