方法重载:
Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法
示例代码:
public class Test {
//无返回值有有int形的参数
void receive(int i) {
System.out.println("i="+i);
}
//无返回值,有float形的参数
void receive(float f) {
System.out.println("f="+f);
}
//无返回值,有String形的参数
void receive(String s) {
System.out.println("s="+s);
}
public static void main(String [] args){
Test m = new Test();
m.receive(1234);
m.receive(56.78f);
m.receive("方法重载");
}
}
注意:
Java的方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法。
方法重写:
在Java和其他一些高级面向对象的编程语言中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
示例代码:
package text;
public class test{
public static void main(String[] args) {
new Derived();
}
}
class Base{
private int i=2;
public Base(){
display();
}
public void display(){
System.out.println(i);
}
}
class Derived extends Base{
private int i=22;
public Derived(){
i = 222;
}
public void display(){
System.out.println(i);
}
}
super关键字:
若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。 如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。
总结:
方法重载:
1.必须具有不同的参数列表;
2.可以有不同的返回类型,只要参数不同就可以了。
3.可以有不同的访问修饰符。
方法重写:
1.参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载。
2.返回类型必须相同。
3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
4.方法重写主要优点是能够定义某个子类独有的特征。这也是多态的体现。