一开始我也是很蒙的,现在把自己的代码及截图给到大家,慢慢悟吧,去思考了才会更深刻,才会有自己的理解:
#继承
class Father(object):
f = 1
def __init__(self, age):
self.age=age
print ( "Father——age: %d" %( self.age) )
def getAge(self):
print('Father------%d'%self.age)
print(id(self))
class Son(Father):
# f=2
def __init__(self, age):
print ( "son------hello world" )
super().__init__(age)#使用super调用父类的方法
self.age = age
def getAge(self):
Father.getAge(self)#使用类名直接调用父类的方法,注意,这个时候就要传入self参数,不然报错self就是指向当前的实例!
print('son------get age!')
print(id(self))
son=Son(18)
son.getAge()
1class Father():
def __private(self):
print("父类的私有函数private")
def _protected(self):
print("父类的受保护函数protected")
def public(self):
print("父类的公有函数public")
self.__private()
self._protected()
class Son(Father):
__son='private_son'
_son='protectes_son2'
def __private(self):
print("子类的重载私有函数private")
def _protected(self):
print("子类的重载受保护protected")
def prit(self):
print(self.__son)
s = Son()
s.public()
# 单下划线的函数或属性,在类的定义中可以调用和访问,类的实例也可以直接访问,子类也可以访问;s._protected()可以访问
# 双下划线的函数或属性,在类的定义中可以调用和访问,类的实例不可以直接访问,子类不可以访问。s.__private()报错
2 3 4
网友评论