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; } }
