Python中的封装,继承和多态

it2022-05-23  55

面向对象的三大特性:封装,继承和多态

封装:在类的内部定义属性和方法,通过对象或类名来访问属性和方法,隐藏功能的实现细节,也可以设置访问权限。

广义的封装:实例化一个对象,给对象空间封装一些属性;狭义的封装:私有制;私有成员:私有静态字段,私有方法,私有对象属性

继承:子类需要重用父类的属性和方法,子类中也可以定义自己的属性和方法。

多态:python是弱类型语言,python中处处是多态;python中没有多态,但是有鸭子类型  ==》一些类含有相同的方法,则这些类就互称为鸭子

下面这几个类都有index方法,index具有相同的作用,则这几个类就互称为鸭子

class Str: def index(self): pass class List: def index(self): pass class Tuple: def index(self): pass

  对于私有成员,类的外部不能访问,子类(派生类)也不可以访问,只能在本类的内部访问

class Animal: head = "True" #静态变量(静态字段) body = "True" #静态变量(静态字段) __color = "red" #私有静态变量(私有静态字段) __skin = "black" #私有静态变量(私有静态字段) def __init__(self,name,age): #特殊方法 self.name = name #对象属性(普通字段) self.age =age #对象属性(普通字段) def eat(self):#普通方法 print("所有动物都需要吃……") def drink(self):#普通方法 print("所有动物都需要喝……") def __func(self):#私有方法 print("Animal fun") def fun(self): self.__func() #私有方法在类的内部可以访问 class Dog(Animal): pass a1 = Animal("小猫",2) ##print(a1.head,a1.body) ##a1.eat() ##print(a1.__color) #报错 对象不可以访问类的私有静态变量 ##a1.__func() #报错 对象不可以访问类中私有方法 ##print(Animal.head) ##print(Animal.__color) #报错 类名不可以访问类中的私有静态变量 ##Animal.__func() #报错 类名不可以直接访问类中的私有方法 d = Dog("小狗","2") #print(d.head) #print(d.__color) #报错 子类不可以访问父类的私有静态变量 #d.__func() #报错 子类不可以访问父类的私有方法 d.fun()

  

转载于:https://www.cnblogs.com/tanxu05/p/9904970.html


最新回复(0)