每天重温一个java基础知识!
目录
概念
重载指的是在一个类中定义多个具有相同名称但参数列表不同的成员方法或构造方法,编译器会根据调用时传入的参数类型和数量来自动选择最匹配的方法进行调用。
特点:重载可以提高代码的可读性和可维护性。
重写是指子类重新实现了父类中已有的方法,子类的方法与父类中的方法名称、返回值类型和参数签名完全一致,但是方法体内的实现不同。
特点:重写允许子类改变方法的行为,使其适应子类的特殊需求,同时保留父类的基本行为。
区别
1. 定义方式:重载发生在一个类中,多个方法名称相同但参数不同;而重写是子类对父类方法的重新实现。
2. 处理方式:重载是编译时多态,编译器会根据传入参数的不同自动选取最匹配的方法;而重写是运行时多态,根据对象的真实类型动态分派到对应方法。
3. 目的不同:重载主要是为了方便开发和提高代码可读性;而重写则是为了改变继承关系中方法的行为,增加程序的灵活性。
代码实现
重写
public class Animal {
public void move() {
System.out.println("Animal is moving.");
}
}
public class Dog extends Animal {
@Override
public void move() {
System.out.println("Dog is running.");
}
public void bark() {
System.out.println("Dog is barking.");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Animal();
Dog dog = new Dog();
animal.move(); // Output: Animal is moving.
dog.move(); // Output: Dog is running.
dog.bark(); // Output: Dog is barking.
Animal animal2 = new Dog();
animal2.move(); // Output: Dog is running.
}
}
重载
public class Calculator {
public int add(int num1, int num2) {
return num1 + num2;
}
public double add(double num1, double num2) {
return num1 + num2;
}
public int add(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
}
public class Test {
public static void main(String[] args) {
Calculator calculator = new Calculator();
System.out.println(calculator.add(1, 2)); // Output: 3
System.out.println(calculator.add(1.0, 2.0)); // Output: 3.0
System.out.println(calculator.add(1, 2, 3)); // Output: 6
}
}
最后
感谢各位读者的耐心阅读和关注,希望本文能对您在Java基础方面的学习和工作上有所帮助。Java是一个广泛使用的编程语言,掌握Java基础知识对于软件开发人员来说是非常重要的,也是进一步深入学习Java的基础。如果您对Java还有其他方面的问题或者想法,欢迎随时联系我进行交流探讨。