方法的重载(overloading)与重写(overriding)
2006-06-12 09:52
330 查看
方法名,参数相同形成重写,重写的方法不能降低原方法的"可见度",也不能改变原方法的返回值类型。
方法名相同,参数不同(个数、类型)形成重载,重载的方法可看成一个全新的方法,与原方法相比它可以有不同的"可见度"和“返回值类型”。如下例:
class A {
protected int method1(int a, int b) { return 0; }
}
public class B extends A{
public int method1(int a, int b) { return 0; } //正确,重写父类方法,可以扩大访问权限
//private int method1(int a, int b) { return 0; } //错误,重写父类方法,不能降低了访问权限
//private long method1(int a, int b) { return 0; } //错误,重写父类方法,不能改变返回值类型
public short method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型
private int method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型
}
但这里 方法public short method1(int a, long b) { return 0; }和 方法private int method1(int a, long b) { return 0; }不能同时存在,因为在同一类中,不允许存在相同名字和参数类型的方法(重写的方法)。
方法名相同,参数不同(个数、类型)形成重载,重载的方法可看成一个全新的方法,与原方法相比它可以有不同的"可见度"和“返回值类型”。如下例:
class A {
protected int method1(int a, int b) { return 0; }
}
public class B extends A{
public int method1(int a, int b) { return 0; } //正确,重写父类方法,可以扩大访问权限
//private int method1(int a, int b) { return 0; } //错误,重写父类方法,不能降低了访问权限
//private long method1(int a, int b) { return 0; } //错误,重写父类方法,不能改变返回值类型
public short method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型
private int method1(int a, long b) { return 0; }//正确,重载自身的方法,可以有不同的访问权限和返回值类型
}
但这里 方法public short method1(int a, long b) { return 0; }和 方法private int method1(int a, long b) { return 0; }不能同时存在,因为在同一类中,不允许存在相同名字和参数类型的方法(重写的方法)。
相关文章推荐
- java语言中方法重载overloading和方法重写(覆写)overriding的区别
- java中方法的重写(overriding)与重载(overloading)的区别
- 方法的重载(overloading)与重写(overriding)
- java中的重载(overriding)跟重写(overloading)理解
- Overloading,overriding,and extending functions and events 重载,重写和扩展函数和事件
- Overloading(重载)和Overriding(重写)的区别
- 【转】常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
- 黑马程序员 【】java学习之路——重写(Overriding)、重载(Overloading)、多态的简单总结
- 重写(Overriding)与重载(Overloading)的区别
- 重写(Overriding)和重载(Overloading)和隐藏
- Java基础--重写(Overriding,覆盖)-重载(Overloading)
- Java学习笔记之重写(Overriding)与重载(Overloading)
- 常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
- C++类中的 重写(Overriding) 重载(Overloading) 隐藏
- Java重载overloading与重写(覆盖)overriding
- Java中的方法重写(Overriding)与方法重载(Overloading)
- 常见Java面试题 – 第三部分:重载(overloading)与重写(overriding)
- java中重载(Overloading)、重写(Overriding)、重定义(redefinition)
- 用文字描述Overloading(重载)和Overriding(重写)的区别。
- java中重载(Overloading)和重写(Overriding)