楼上正解,补充下
1.为什么构造函数不能重写?
重写的条件:子类继承父类,子父类函数名以及参数相同,由于父类里面的构造函数名和父类名相同,子类的构造函数名和子类名,两个构造函数的函数名必然会不同,所以子类构造函数不能覆盖父类构造函数.
应该是子类构造函数必然会调用父类构造函数,是调用,而不是覆盖.因为每个类里面都有默认的空参数构造函数,而子类构造函数第一行还有一个super().
2.为什么构造函数能重载?
重载的条件:函数名相同,参数类型和个数不同.重写是类与类之间的函数,重载是一个类里面的函数.在同一个类中,所有构造函数名都一样,另外,可以定义带参数的和空参数的构造函数,带参数的构造函数参数种类和个数都可以不同,所以构造函数可以重载. |