java中重载与重写的区别
重载:
重载的时候,在同一个类中,方法名要相同,参数类型、个数不一样,与返回值类型无关系
public class Dog {
Dog()
{
this.bark();
}
void bark()//bark()方法是重载方法
{
System.out.println(\"no barking!\");
this.bark(\"female\", 3.4);
}
void bark(String m,double l)//注意:重载的方法的返回值都是一样的,
{
System.out.println(\"a barking dog!\");
this.bark(5, \"China\");
}
void bark(int a,String n)//不能以返回值区分重载方法,而只能以“参数类型”和“类名”来区分
{
System.out.println(\"a howling dog\");
}
}
重写:
重写的时候,子类继承与父类,子类的方法名与父类的方法名相同、相同的方法名、返回类型和参数表
public class Father{
public void speak(){
System.out.println(Father);
}
}
public class Son extends Father{
public void speak(){
System.out.println("son");
}
}