类的多态的理解和应用场景
课上的理解 用例子说明: class People(object): # 先定义一个基类 def talk(self): # 基类的talk方法,我们不希望被调用,写一个会抛出错误的代码 "如果基类的这个方法被调用,就抛出一个错误" raise NotImplementedError("Subclass must implement abstract method") class Chinese(People): # 这个是子类 def talk(self): # 重构talk方法 print("你好,世界") class American(People): def talk(self): print("Hello World") # 如果调用了基类的方法,会根据raise里定义的,抛出一个错误。去掉下面的注释测试一下 #p1 = People() # 实例化一个基类 #p1.talk() # 调用基类的talk方法 # 实例化2个对象 c1 = Chinese() a1 = American() # 通过子类调用自己的方法当然没问题。要用多态就是要使用统一的接口来实现这2条命令 c1.talk() a1.talk() # 多态是要用父类调用子类 #People.talk(c1) # 这样是最好的,真正的直接实现多态的方法,但是Python不支持 #People.talk(a1)