子类对象调用父类方法包含子类覆盖的方法

来源:互联网 发布:认知语言学与人工智能 编辑:程序博客网 时间:2024/05/17 03:54

求最大公约数和最小公倍数
如果A类中的fa和B类中的fb命名相同,均为f,则在B类对象调用f方法时,会出现逻辑错误,因为调用super.f(a,b)后,父类方法中return f(a,b%a);调用的将不是父类中自身的方法,而是子类中被覆盖的方法。

子类类型对象调用子类覆盖父类的方法,默认使用子类的方法;使用super,可调用父类被覆盖的方法,若父类的方法中有被子类覆盖的方法,则该方法的逻辑为子类方法的逻辑;

个人建议:如无特别情况,绝不要覆盖父类的递归方法同时调用父类的递归方法,以下B类对象的f方法调用时,不能得到正确的结果;
B类f方法出现错误逻辑

原创粉丝点击