返回

初探 Java 框架底层之重载、重写与构造方法的秘密

后端

理解Java框架底层的关键特性

提到重载与重写,大家最熟悉的地方莫过于自己封装一个枚举类或者框架中的底层实现类了吧?我们经常用着底层的框架技术,但是底层的原理可能不太明白。

带着好奇,我们一起去探索,我们知道Java类三大特性——封装、继承、多态。它们也是Java框架底层设计中的三大基石。

重载——同名方法不同参

当一个类中,同名方法具有不同的形参(参数类型不同或参数个数不同),那么就是重载。

例如,Java中的String类中,定义了如下两个重载方法:

public int indexOf(char ch)
public int indexOf(String str)

这两个方法具有相同的方法名indexOf,但参数类型不同,因此属于重载。

重载可以提高代码的可读性和可维护性,使得方法名更具语义性,也更容易理解。

重写——同名方法,形参相同,实现不同

重写是指子类继承父类后,对父类的方法进行了重新定义。重写的方法必须与父类方法具有相同的方法名、参数类型和返回值类型。

例如,Java中的Animal类中定义了一个方法叫makeSound(),其子类Dog继承后,对makeSound()方法进行了重写,如下所示:

class Animal {
    public void makeSound() {
        System.out.println("动物叫");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("汪汪");
    }
}

在子类Dog中,makeSound()方法被重写,当调用Dog对象的makeSound()方法时,会执行子类的方法,而不是父类的方法。

重写可以实现多态性,使子类对象能够以不同方式响应相同的调用,从而提高了代码的可扩展性和灵活性。

构造方法——对象的创建之始

构造方法是类的一个特殊方法,用于创建对象并对其进行初始化。构造方法与类名相同,且没有返回值类型。

例如,Java中的Dog类中定义了一个构造方法,如下所示:

public Dog() {
    // 初始化对象属性
}

当创建一个Dog对象时,会自动调用构造方法来初始化对象。构造方法可以有多个重载,以支持不同的初始化方式。

构造方法在对象创建过程中起着至关重要的作用,它为对象提供了初始状态,并确保对象能够正常运行。

总结

重载、重写与构造方法是Java框架底层设计中的关键特性,它们在提高代码的可读性、可维护性、可扩展性和灵活性方面发挥着重要作用。

通过对这些特性的理解和掌握,我们可以更加深入地理解Java框架的底层设计,并为构建更加强大和健壮的应用程序奠定基础。