java中的方法重写和方法重载
方法重写(@override)
一、方法重写介绍
1、java中的方法重写是指在子类中对与父类中同名、同参数类型,同返回值类型的方法重新编写(重写)的过程。
2、重写后子类中的该方法会覆盖掉父类中的方法。在调用方法时,会自动调用子类中的方法。
二、方法重写必须满足如下条件:
1、子类中方法名、参数列表、返回类型与父类中方法保持一致
2、子类重写的方法访问修饰符不能低于被重写的方法
3、子类重写的方法抛出的异常类型不能超过父类方法抛出的异常类型
4、父类中的方法不能是 final 或 private,因为 final 方法不能被重写,private方法不能被继承。
三、举个例子
假设有个父类Animal,其有个方法speak(),输出动物的颜色。
public class Animal {
protected String color;
public Animal(String color) {
this.color = color;
}
public void speak() {
System.out.println("The animals color is : " + color);
}
}
然后,我们创建一个子类Dog,重写speak()方法,并输出颜色和名字:
public class Pig extends Animal{
private String name;
public Pig(String color, String name) {
super(color);
this.name = name;
}
@Override
public void speak() {
System.out.println("The animal name is : " + name + " color is : " + super.color);
}
public static void main(String[] args) {
Pig pig = new Pig("blue", "aaaa");
pig.speak();
}
}
四、方法重写的优势
方法重写的最大好处是面向继承编程,增强了程序的灵活性和可扩展性。方法重写体现了运行时的多态性。
方法重载
一、方法重载介绍
1、方法重载是指在一个类中定义了多个方法名相同但参数列表不同的方法。
2、重载方法可以有不同的返回值类型,但不能仅仅只有返回类型不同而已。
二、举个例子
public class Calculation {
public int add(int a, int b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
public double add(double a, double b) {
return a + b;
}
}
三、方法重载的好处
方法重载体现了编译时多态,编译器会根据传递不同的参数选择调用相应的方法,实现一种方法的多样化。