重载(Overload):在同一类中多个方法名一样但方法中的参数列表不同,代码也不一样
下面举个例子便于我们理解:
public class Overload {
public static void main(String[] args) {
OverloadPerson man = new OverloadPerson();
man.person();
man.person(18);
man.person(9999.999999);
}
}
class OverloadPerson{
void person(){ //以person()为方法进行第一次无参
System.out.println("我是中国人");
}
void person(int a){ //第二次进行整型参数
System.out.println("今年有:" + a + "岁");
}
void person(double a){ //第三次进行双精度型参数,重载方法名相同但参数不同
System.out.println("我有:" + a + "元");
}
}
运行结果如图所示:
重写/覆盖(Override):子类有一个方法和父类的某个方法的名称,返回类型,参数一样,也就是说子类的这个方法覆盖了父类的那个方法
同样我们也举个例子加以理解:
public class Animal {
public static void main(String[] args) {
Animal animal = new Animal();
Animal cat = new Cat();
animal.think();
cat.think();
}
void think() {
System.out.println("小唐哥爱猫猫!mua~");
}
}
class Cat extends Animal{ //继承父类Ainmal
@java.lang.Override //重写
void think() {
super.think(); //调用父类方法,所以出现两次 小唐哥爱猫猫!mua~
System.out.println("猫猫爱小唐哥!喵~");
}
}
运行效果如图所示:
重写与重载区别: 如有错误请指正,谢谢!