天天看点

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

需要注意的是: 

1. 方法名相同。 

例子: 

“` 

public class test{ 

public void a() { 

system.out.println(“a()”); 

};

}

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)

1. 覆盖必须继承,是针对父子类的;重载无需继承,是针对本类的。 

2. 覆盖的方法名,参数完全一致;重载的方法名相同,参数列表不同。 

3. 覆盖的方法修饰符大于等于父类的方法(例如不能把public修改为private),重载和修饰符无关。 

4. 覆盖不可以抛出父类没有抛出的一般异常,可以抛出运行时异常;重载方法可以抛出不同异常。

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