1.overload 中文意重载,
即同一个名称,可以载多个参数。
java中的重载分为构造方法重载和普通方法重载。
①构造方法重载
构造方法不能有返回值这个概念,类如 class Doge{
int age; float cpu; char sex; int leg; public Doge(){ System.out.println("null"); } public Doge(char sex){ System.out.println("pu"); } public Doge(int age,float cpu){ System.out.println("age"+"cpu"); } public Doge(float cpu,int age){ System.out.println("cpu"+"age"); } public Doge(int leg,int age){ System.out.println("leg"+"age"); } }
他是不带任何返回值的,只要方法小括号内的参数不同(类型,个数,顺序),就可以构成重载!
②普通方法的重载
普通方法,是必须带返回值参数,空也要写即void,但是返回值类型不同,其他属性相同,并不能构成重载,(因为java编译器,并不能知道,你要返回的是什么类型)
即也是与构造方法相似,只要方法小括号内的参数不同(类型,个数,顺序),就可以构成重载!
package TEST; public class Test5 { public static void main(String[] args) { Doge de=new Doge(); } } class Doge{ int age; float cpu; char sex; int leg; public void Dog(){ System.out.println("null"); } public String Dog(){ System.out.println("null"); return 1; }//不能构成重载,eclipse提示错误! public char Dog(char sex){ return sex; } public void Dog(int age,float cpu){ System.out.println("age"+"cpu"); } public void Dog(float cpu,int age){ System.out.println("cpu"+"age"); } public void Dog(int leg,int age){ System.out.println("leg"+"age"); } }
2.方法的重写
重写即子类继承父类,需要重写父类的方法。
重写需要返回值类型,参数类型,方法名,全相同。
子类抛出的异常,不能多于父类,子类的访问范围要大于等于父类。
重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。例如: 父类的一个方法申明了一个检查异常 IOException,但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。——本句话参考http://www.runoob.com/java/java-override-overload.html