方法重载:
-
使用:常用于同一个类中方法的声明,根据参数列表不同(参数个数、类型不同、参数顺序(必须类型不同的参数顺序不同才可以))可以声明同一个名字的不同方法,在程序执行过程中编译期绑定对应方法
注意:重载是否发生与返回值类型无关
-
例:
public static void say(){ System.out.println("你好"); } public static void say(String name){ System.out.println("你好,我叫"+name); }
方法重写:
-
使用:常用于父子类中方法的声明,一般超类/接口中会使用abstract将方法设置为抽象方法(只有方法名,没有方法体,包括大括号),子类去实现方法的重写,参数必须相同
-
注意:重写要遵循"两同两小一大"原则:
-
两同:
-
方法名相同
-
参数列表相同
-
-
两小:
-
子类方法的返回值类型小于或等于父类的
-
void时必须相等
-
基本类型时必须相等
-
引用类型时小于或相等:父类大,子类小
-
-
子类抛出的异常小于或等于父类的
-
-
一大:子类方法的访问权限大于或等于父类的
-
-
例:
interface Aoo{ public abstract void say(); } public class Boo implements Aoo{ public void say(){ System.out.println("你好"); } }