Python方法与属性重写

来自CloudWiki
跳转至: 导航搜索

属性方法的继承

属性和方法的重写:

如果一个基类中有一个实例方法,在继承类中也可以重新定义完全一样的实例方法,例如Person有show方法,在Student中也有一样的show方法,它们是不会混淆的,我们称Student类的show重写了Person的show。


当然一个基类的实例方法也可以不被重写,派生类会继承这个基类的实例方法。派生类也可以增加自己的新实例方法。

class Person:
    className="Person"
    def __init__(self,name,gender,age):
        self.name=name
        self.gender=gender
        self.age=age
 
    def show(self,end='\n'):
        print(self.name,self.gender,self.age,end=end) 



class Student(Person):
    className="Student"
    def __init__(self,name,gender,age,major,dept):
        Person.__init__(self,name,gender,age)
        self.major=major
        self.dept=dept
 
    def show(self):
        Person.show(self,' ')
        print(self.major,self.dept)


s=Student("A","male",20,"software","computer")
s.show()
print(Student.className)

结果:

A male 20 software computer
Person
Person
Person