欢迎访问宙启技术站
智能推送

Java函数的重载与重写详解

发布时间:2023-06-01 08:31:50

Java中的函数重载与函数重写是Java中最基础的概念之一,也是面向对象编程中最常用并且最重要的部分之一。函数重载与重写的详细解释如下。

一、函数重载

函数重载的概念:在Java中,同一个类中可以定义多个名称相同的函数,但这些函数的参数数量或参数类型需不同,这种情况称之为函数的重载。

函数重载的优点:

1. 可以避免函数名称的冲突,提升了程序的可扩展性和维护性。

2. 可以让函数在语义上更加明确和详细,更容易理解和使用。

3. 在Java中不允许函数的返回类型是函数签名的一部分,因此函数重载仅通过参数(类型、数量、顺序)来区分不同的函数,这一设计避免了语言设计复杂度的增加。

函数重载的规则:

1. 相同的函数名称。

2. 参数数量不同或者参数类型不同。

3. 参数顺序不同,也被认为是一种参数类型的变化。

4. 返回值类型不同不可以作为函数重载的因素。

函数重载的示例:

public class Printer {
    //定义2个单独的print方法,用于输出不同类型的数据
    public void print(int i) {
        System.out.println("int:"+i);
    }

    public void print(String str) {
        System.out.println("String:"+str);
    }

    //调用
    public static void main(String[] args) {
        Printer printer = new Printer();       
        printer.print(99); //调用int型print方法
        printer.print("Hello"); //调用String型print方法
    }
}

二、函数重写

函数重写的概念:当子类和父类中出现了同名、同参数列表的函数时,子类会覆盖父类的函数,这种情况称之为函数重写。

函数重写的规则:

1. 函数名称和参数列表必须和父类的某个函数一致。

2. 重写的函数的访问修饰符不能比父类的更为严格。如父类是 public 的,则子类不可以是 private 的,但可以是 public、protected 或者没有修饰符。

3. 重写的函数不能比父类的更为宽松。

4. 重写的函数可以抛出与父类相同的异常或者是更为具体的异常。

函数重写的示例:

public class Animal {
    //定义一个move方法
    public void move() {
        System.out.println("Animal move");
    }
}

public class Dog extends Animal {
    //重写父类的move()方法
    public void move() {
        System.out.println("Dog move");
    }
}

//调用
public static void main(String[] args) {
    Animal animal = new Animal();       
    animal.move(); //调用父类的move方法
    Dog dog = new Dog();
    dog.move(); //调用子类的move方法
}

总结:函数重载与函数重写不仅是Java编程语言中最基础的概念,而且是Java中常见的编程手段,需要掌握并熟练使用。通过函数重载与函数重写的小练习,可以帮助你更好的理解和掌握这两个概念,以便在实际项目开发中能够灵活应用。