且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Java千百问_05面向对象(010)_java中重载和覆盖有什么关系

更新时间:2022-09-09 11:07:10

1、什么是重载

Java重载,简单说,就是方法有同样的名称,但是参数不相同。这样的同名不同参数的方法之间,互相称之为重载方法。 
需要注意的是: 
1. 方法名相同。 
2. 参数不同,这里是说对应位置的参数类型至少有一个不同,当然List和List都是List,算作相同。 
3. 返回值可以不同,可以相同。

例子: 
“` 
public class Test{ 
public void a() { 
System.out.println(“a()”); 
};

public void a(int i) {
    System.out.println("a(int i)");
};

public void a(String j) {
    System.out.println("a(String j)");
};

public void a(int i, String j) {
    System.out.println("a(int i, String j)");
}

public String a(String j, int i) {
    System.out.println("a(String j, int i)");
    return j;
}

}

public class TestMain{

public static void main(String args[]){ 
Test test = new Test(); 
test.a(); 
test.a(1); 
test.a(“1”); 
test.a(1, “1”); 
test.a(“1”, 1); 


“ 
运行后产生以下结果: 
a() 
a(int i) 
a(String j) 
a(int i, String j) 
a(String j, int i)

2、重载和覆盖(重写)的区别

了解覆盖看这里:java中覆盖是什么 
了解继承看这里:java类的继承有什么意义 
1. 覆盖必须继承,是针对父子类的;重载无需继承,是针对本类的。 
2. 覆盖的方法名,参数完全一致;重载的方法名相同,参数列表不同。 
3. 覆盖的方法修饰符大于等于父类的方法(例如不能把public修改为private),重载和修饰符无关。 
了解修饰符看这里:public、privite、protected有什么区别 
4. 覆盖不可以抛出父类没有抛出的一般异常,可以抛出运行时异常;重载方法可以抛出不同异常。


原文地址:http://blog.csdn.net/ooppookid/article/details/51225092