父类有两个同名方法:A()和A(int c)。
当子类不覆盖A()和A(int c)时,子类的实例可以调用A()和A(int c)。
当子类覆盖了方法A()时,子类的实例调用方法A()的时候没问题,但是调用方法A(int c)的时候出问题了。
按理说,A(int c)是父类的方法,子类没有覆盖,子类调用A(int c)的时候应该默认调用父类的A(int c),但此时编译器(VS2017)会报错:“A函数不接受1个参数”。
这是出于什么考虑呢?个人认为,本质上A()和A(int c)是两个独立的方法,A()是否被覆盖为什么会影响A(int c)的调用呢?
解决办法当然也是有的:把A(int c)也覆盖掉就好了。只是不明白为啥要这么设计?
--
FROM 219.142.145.*