您的位置:首页 > 编程语言 > Java开发

java中如何理解overload , override 和 overwrite

2015-12-15 14:02 691 查看
很多人总是容易把这三个词搞混淆,有的人甚至认为三者之间没多大区别。其实区别还是很大的,而且彻底搞清楚这三者间的关系还是很重要的,对于理解类与类之间的关系、类与接口、类内部方法与方法间的关系以及理解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:重写 重写父类所属方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: