Java多态中非常重要的重载和重写,下面举例说明区别。
package test.dongli;
import java.io.IOException;
public class Test3 extends Test3Father {
/*
* 方法名称必须相同,参数数量不同,参数的类型不同,参数的顺序不同,与返回值类型,修饰符无关
*
*/
public void make() {
System.out.println("make pc");
}
// //Duplicate method make() in type Test3
// public int make() {
//
// }
// private void make() {
//
// }
public void make(String str) {
System.out.println("make: "+str);
}
public void make(int number) {
System.out.println("number :"+number);
}
public String make(String str,int count) {
return str+count;
}
/*
* override
* 1.方法名和参数列表必须一致
* 2.访问修饰符大于等于父类(不能reduce父类方法的visible),下面方法中可以使用protected或者public或者默认的修饰
* 3.返回值类型必须兼容父类的返回类型(即继承或者等于父类类型),下面方法可以使用String或者Object
* 4.如果父类有异常,则子类必须兼容父类的异常(即继承或者等于父类异常,或者不抛出异常)
*/
//override
@Override
public String getName(String str) {
return "";
}
}
class Test3Father{
Object getName(String str) throws IOException{
return str;
}
}