03-单继承和方法的重写
2018-10-29 本文已影响1人
努力爬行中的蜗牛
面向对象的三大特性:封装、继承和多肽
继承:子类拥有父类所有的属性和方法。
class Animal:
def eat(self):
print("吃")
def sleep(self):
print("睡")
class Dog(Animal): #继承Animal类
def bark(self):
print("汪汪汪")
dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
子类重写父类方法,覆盖父类方法
class Animal:
def eat(self):
print("吃")
def sleep(self):
print("睡")
class Dog(Animal):
# 重写父类方法
def eat(self):
print("狗狗在吃")
def bark(self):
print("汪汪汪")
dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
子类重写父类方法,扩展父类方法
class Animal:
def eat(self):
print("吃")
def sleep(self):
print("睡")
class Dog(Animal):
# 重写父类方法
def eat(self):
# 1. 针对子类特有的需求,编写代码
print("狗狗在吃")
# 2. 使用super().,调用原本在父类中封装的方法
# 父类名.方法(self)
# Dog.eat(self)
super().eat()
# 3. 增加其他子类的代码
def bark(self):
print("汪汪汪")
dahuang = Dog()
dahuang.eat()
dahuang.sleep()
dahuang.bark()
使用父名调用父类方法
父类名.方法(self)
子类不能直接访问父类的私有属性和私有方法
子类可以通过父类的共有方法访问到父类的私有属性和方法