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

Java中重写和重载的区别

2018-03-28 16:44 134 查看

1.重写

①方法名,参数,返回值相同;
②子类方法不能缩小父类方法的访问权限;
③子类方法不能抛出比父类方法更多的异常;
④存在于子类于父类之间;
⑤被final修饰的方法不能重写。

2.重载

①参数的类型,个数,顺序至少要有一个不相同;
②如果两个方法的方法名,参数类型,个数,顺序均相同,只有返回值类型不同,则无法构成重载。
③存在于子类和父类同类之中。

测试:
class A{
public int get(int a){
return a;
}
public int get(int a, int b){         //重载了get方法
return a + b;
}
public void get(int a, int b){         //只有返回值类型不一样,无法重载
a++;
}
private int get(int a, int b, int c){ //重载了get方法,权限可以改变
return a + b;
}
}
class B extends A{
public int get(int a){                //重写了父类A中的get方法
a++;
return a;
}
private int get(int a){               //错误,子类中重写方法的权限小于父类
a--;
return a;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: