我对子类重载/覆盖父类方法的理解,请大家看对不对?
1.如果子类继承了父类,而没有定义与父类中同名的方法,那就是简单的继承父类的方法.
2.如果子类中定义了与父类中同名但参数不同的方法,那就是重载,当用子类的引用调用该方法时,将根据参数来决定是调用在父类中定义的方法,还是调用在子类中定义的方法.
3.如果子类中定义了与父类中同名且参数个数和类型都相同的方法,那就是覆盖,当用子类的引用来调用该方法时,只能是调用在子类中定义的方法,因为父类中的方法虽然被继承了,但是已被覆盖了.
请问我的理解对不对?
还有,override和overload到底哪个是覆盖,哪个是重载?感觉说什么的都有.
问题点数:0、回复次数:6Top
1 楼hyhu(先飞笨鸟)回复于 2003-11-04 08:59:20 得分 0
overload是重载,override是过载,你的理解我认为是对的,但过载也就是你所说的覆盖是不提倡的,现在项目开发中,一般会申明interface来规范借口的!Top
2 楼djsjeff(楚河汉界)回复于 2003-11-04 09:03:17 得分 0
你说的满对的还有就是父类的方法最好不要是final或private的否则子类如果定义一个和父类同名的方法那么父类的方法将视为隐藏Top
3 楼kypfos(不在寻梦)回复于 2003-11-04 09:08:55 得分 0
你的理解正确的,其实主要就是对多态的理解。
在java里覆盖也就是置换还是用得很多的。
比如我们经常要重写paint(Graphics g)方法。Top
4 楼d992901(沉思)回复于 2003-11-04 09:55:22 得分 0
你是对的,呵呵
调用父类被覆写的方法使用 super.f();
这个在覆写的时候是常用到的Top
5 楼sayyouandsayme(【说你说我】)回复于 2003-11-04 18:16:06 得分 0
谢谢
Top
6 楼warmheartedwolf(大猫)回复于 2003-11-04 22:46:17 得分 0
被隐藏?~那有什么影响吗?Top




