java程序子类,父类,覆写的问题

[复制链接]
查看11 | 回复3 | 2013-7-23 13:58:26 | 显示全部楼层 |阅读模式
gt是子类,其中没有覆写的getTime,所以系统去父类的getTime执行。执行runcode时,系统先在子类中找runcode,结果找到了一个,这个正是你覆写的,然后就执行这个。如果没有你覆写的runcode,程序是会出错的,因为找到父类的runcode是一个抽象方法abstract,抽象方法不能被执行,必须被覆写才能使用。覆写的意思是说,子类的这个方法和父类相比有不同(有更新),但完成类似的功能,所以还采用同样的名称。调用时直接使用新的,而不用过时的父类的。...
回复

使用道具 举报

千问 | 2013-7-23 13:58:26 | 显示全部楼层
覆盖是指子类有与父类相同的方法签名。如果子类覆盖了基类方法,那么子类就可以重写这个方法的相关逻辑。指向子类实例的父类型的引用在调用这个方法时,在运行时,编译器就只能调用到这个子类的方法了。如果想要调用父类的方法,必须使用super.父类方法才行。具体到你这个父类,就不能使用super去调用,因为父类的方法是一个抽象方法,而抽象方法就是要给子类实现的。...
回复

使用道具 举报

千问 | 2013-7-23 13:58:26 | 显示全部楼层
个人觉得应该画个内存图给你看你就明白了!!总之子类对象调用的与父类方法签名一样的方法,那么那个方法肯定是子类重写的方法!!就算是将子类的对象用父类变量引用最后调用方法的实质还是对子类方法的调用!!但是用类命调用的覆盖的变量时,就要区分父子类了!...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行