重写普通方法和构造方法------原类的方法会被覆盖

重写普通方法和构造方法


在类的继承中,当B类继承A类时,B类就会拥有A类的所有成员变量和方法,如果B类中的方法名与A类中的方法名相同,那么B类中同方法名就会重写A类中同方法名。

如果在B类中定义了构造方法,同样也会重写A类中的构造方法,也就是说,创建B类对象,实际上是调用B类中的构造方法,而不是A类中的构造方法。

实例

class A:
    def __init__(self):
        print("A类的构造方法")
    def method(self):
        print("A类的method")
class B(A):
    def __init__(self):
        print("B类的构造方法")
    def method(self):
        print("B类的method")
b=B()
b.method()


上面的代码中,B是A的子类,而且在B类中定义了构造方法,以及与A类同名的构造方法,所以在创建B对象,以及调用method方法,都是调用B类本身的方法,程序运行结果如下所示:


E:\python\python.exe E:/progect/untitled1/untitled1/urls.py
B类的构造方法
B类的method

 

posted @ 2019-02-16 16:05  effortsing  阅读(378)  评论(0编辑  收藏  举报