封装:根据职责将属性和方法封装到一个抽象类中
继承:实现代码的重用,相同的代码不需要重复的编写
多态:不同的对象调用相同的方法,产生不同的执行结果,增加代码灵活度
class类名(父类名) pass
子类可以拥有父类的所有方法和属性
class Yeye():
def eat(self):
print("吃")
def drink(self):
print("喝")
class Baba(Yeye):
def du(self):
print("赌")
class Erzi(Baba):
def piao(self):
print("嫖")
ez = Erzi()
ez.eat()
ez.piao()
ez.du()
如果对父类的方法不满意,可以对父类的方法进行重写。实现方式为:在子类中定义一个和父类同名的方法并且实现
class Yeye():
def eat(self):
print("吃")
def drink(self):
print("喝")
class Baba(Yeye):
def du(self):
print("赌")
class Erzi(Baba):
def piao(self):
print("嫖")
def drink(self):
print("喝的少")
ez = Erzi()
ez.drink()
ez.piao()
ez.du()
如果想在子类中调用父类代码并且还要重写子类,可以用super().父类方法调用父类代码
class Yeye():
def eat(self):
print("吃")
def drink(self):
print("喝")
class Baba(Yeye):
def du(self):
print("赌")
class Erzi(Baba):
def piao(self):
print("嫖")
def drink(self):
print("喝的少")
Baba.du(self) # python 2.0调用父类方法
super().drink() # python3.0调用父类方法
ez = Erzi()
ez.drink()
ez.piao()
ez.du()
在子类中不能访问父类中的私有方法和属性



