python_day7 多态性,封装

子类的对象-->多态(子类也有 不一样的地方)
子类的对象 调用相同的函数名,但是有不一样的功能->多态性

 

多态性:  类都有统一的 函数名,但功能不一样,

就可以 进行统一的调用

最后是用类调用方法,不是用对象 调用

#####################

##多态性; 用类 来调用方法
class Foo:
def func(self):
self.talk()
class A:
def talk(self):
print('A在说')
class B:
def talk(self):
print('B在说')
class C:
def talk(self):
print('C在说')
JG=Foo()
a1=A()
b2=B()
c3=C()
Foo.func(a1)
Foo.func(b2)
Foo.func(c3)
########################
封装
类中的变量 以及函数通过 前面 增加 "__"
的方法 将其隐藏:普通方法
#####################

class Foo:
def __init__(self,name,age):
self.__name=name
self.__age=age

def func(self):
print(self.__age,self.__name)

A=Foo('la',20)
A.func()
#################################
封装高级调用方法:

###############################
class Foo:
def __init__(self,name,age):
self.__name=name
self.__age=age
def func(self):
print(self.__age,self.__name)
class GO(Foo):
def ok(self):
self.func()
def func(self):
print('这可不是')
#,self.__age,self.__name 这里调用这俩是错误的
A=Foo('la',20)
# A.func()
B=GO('la',20)
B.ok()
注释掉GO中的func 方法,就可以周到 父类中的func方法
因为 隐藏封装 其实就是修改 变量(函数)名字


















posted @ 2017-06-13 18:10  昂达达  阅读(217)  评论(0编辑  收藏  举报