首页 > 编程语言 > 详细

java中如何理解overload , override 和 overwrite

时间:2014-03-29 04:49:23      阅读:347      评论:0      收藏:0      [点我收藏+]

很多人总是容易把这三个词搞混淆,有的人甚至认为三者之间没多大区别。其实区别还是很大的,而且彻底搞清楚这三者间的关系还是很重要的,对于理解类与类之间的关系、类与接口、类内部方法与方法间的关系以及理解java的多态性、继承性尤其重要。况且面试中偶尔还会被问到这三个词中的某两个。

先看看三个词分别代表什么含义:

override:覆写

overload:重载

overwrite:重写

接下来请看三者之间的区别:

public class WarppedSessionListener implements HttpSessionListener {
	public static void test(String name){
		System.out.println("方法name:"+name);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		test("main");
	}

	@Override
	public void sessionCreated(HttpSessionEvent sessionEvent) {
		test("sessionCreated");
	}

	@Override
	public void sessionDestroyed(HttpSessionEvent sessionEvent) {
		test("sessionDestroyed");
}}


上面的@override是什么意思呢?结合类来看,肯定一目了然就是说,该类的该方法实现了接口的方法。所以可以说叫:实现-实现了接口方法。

接下来看看

overload:重载 overwrite:重写

的区别

//父类
public class FatherClass {
	public void test(){
		System.out.println("father test method");
	}
}

//子类
public class ChildClass extends FatherClass {
	@Overwrite //重写父类方法
	public void test(){
		System.out.println("Child test method");
	}
	@Overload //类内部方法-重载
	public void test(String name){
		System.out.println("This is a Overload method!");
	}
	/*
	//以下编译不通过
	@Overload
	public String test(String name){
		System.out.println("This is a Overload method!");
		return "";
	}
	*/
}

以上代码直接明了可以得出结论:重写就是把父类方法重写。重载是在一个类内部实现同一个方法名但不同入参名的多个方法。


梳理下最终得出结论:

override:覆写是对接口方法名实现

overload:重载 同一个类里同一个方法名,有不同入参

overwrite:重写 重写父类所属方法


把以上概念理解了,我敢说,任何面试官再问此类问题,都难不倒你。倒是有些面试官估计,自己都还没搞明白这三种概念之间的关系。很多人只知道重载和重写,却不知道覆写override



java中如何理解overload , override 和 overwrite,布布扣,bubuko.com

java中如何理解overload , override 和 overwrite

原文:http://blog.csdn.net/li396864285/article/details/22401561

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!