python之对象的封装、继承、多态、多态性

1.什么是类的封装?为什么要封装?

    封装指的是将数据和对数据的操作放在一个小盒子中。封装的作用在于将代码保护起来,防止无意中对代码的破坏,以及方便我们对程序进行模块化管理。

2.什么叫类的继承?为什么要有继承?

    继承,顾名思义,就是子类对父类的继承,子类继承父类的方法属性。可以将类似事物的类似属性以及类似方法继承下去,而不要重复写类似的代码,从而会减少代码的冗余。

3.什么叫类的多态?为什么要有多态?多态性?

    多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。可以对不同类进行相同的操作。
    序列类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪
#多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度)
class  Animal:
     def  run( self ):
         raise  AttributeError( '子类必须实现这个方法' )
 
 
class  People(Animal):
     def  run( self ):
         print ( '人正在走' )
 
class  Pig(Animal):
     def  run( self ):
         print ( 'pig is walking' )
 
 
class  Dog(Animal):
     def  run( self ):
         print ( 'dog is running' )
 
peo1 = People()
pig1 = Pig()
d1 = Dog()
 
peo1.run()
pig1.run()
d1.run()


什么是多态性(注意:多态与多态性是两种概念) 多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。
#多态性:一种调用方式,不同的执行效果(多态性)
def  func(obj):
     obj.run()
 
func(peo1)
func(pig1)
func(d1)
 
 
# peo1.run()
# pig1.run()
 
 
# 多态性依赖于:继承
##多态性:定义统一的接口,
def  func(obj):  #obj这个参数没有类型限制,可以传入不同类型的值
     obj.run()  #调用的逻辑都一样,执行的结果却不一样
 
func(peo1)
func(pig1)
 
func(d1)
多态:同一种事物的多种形态,动物分为人类,猪类(在定义角度) 多态性:一种调用方式,不同的执行效果(多态性)

通俗的讲:

假设有一个毛坯房,户型是一个类

用钢精水泥组成这样一个户型,而你不需要去关心用了几根钢筋多少水泥,这是封装。

你住跟这个毛坯房同样户型的房子,不作修改或者多做一堵墙或者加个窗,这是继承。

你们上下层相同的卧室,都可以提供睡觉的功能,但是不同的人睡完之后感觉不同,这是多态。


你可能感兴趣的:(python)