在 Java 中,办法的重载(Overloading)和笼罩(Overriding)是两个重要的概念。它们都波及到办法的定义与应用,但作用和规定有所不同。
重载(Overloading)
重载是指在同一个类中定义多个同名的办法,但它们的参数列表不同(参数的个数、类型或程序不同)。重载容许咱们应用雷同的办法名来实现不同的性能,进步了代码的可读性和可维护性。
上面是一个重载的例子:
public class Calculator {public int add(int a, int b) {return a + b;}
public double add(double a, double b) {return a + b;}
public int add(int a, int b, int c) {return a + b + c;}
}
在这个例子中,Calculator
类有三个 add
办法,别离承受不同数量和类型的参数。当咱们调用 add
办法时,Java 会依据传入参数的类型和数量主动抉择正确的办法。
Calculator calculator = new Calculator();
int result1 = calculator.add(1, 2); // 调用第一个 add 办法,输入 3
double result2 = calculator.add(1.0, 2.0); // 调用第二个 add 办法,输入 3.0
int result3 = calculator.add(1, 2, 3); // 调用第三个 add 办法,输入 6
笼罩(Overriding)
笼罩是指子类从新定义父类的办法,以实现本人的性能。当子类笼罩父类的办法时,办法名、参数列表和返回类型必须与父类完全相同。笼罩容许咱们在不批改父类的根底上,定制子类的行为。
上面是一个笼罩的例子:
public class Animal {public void makeSound() {System.out.println("The animal makes a sound");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {System.out.println("The dog barks");
}
}
public class Cat extends Animal {
@Override
public void makeSound() {System.out.println("The cat meows");
}
}
在这个例子中,Dog
和 Cat
类都继承了 Animal
类,并别离笼罩了 makeSound
办法。当咱们调用 makeSound
办法时,Java 会依据对象的理论类型抉择正确的办法。
Animal myAnimal = new Animal();
myAnimal.makeSound(); // 输入 "The animal makes a sound"
Animal myDog = new Dog();
myDog.makeSound(); // 输入 "The dog barks"
Animal myCat = new Cat();
myCat.makeSound(); // 输入 "The cat meows"
留神,当子类笼罩父类的办法时,能够应用 @Override
注解来显式申明。这样,如果咱们不小心批改了办法签名或者拼写错误,编译器会报错,帮忙咱们捕捉潜在的谬误。
总结一下,重载和笼罩是 Java 中两个重要的概念。重载容许咱们在同一个类中定义多个同名但参数列表不同的办法,实现不同的性能。笼罩容许子类从新定义父类的办法,定制本人的行为。了解这些概念并在理论编程中利用它们,能够帮忙咱们编写更高效、易读的代码。
举荐浏览:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g