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

Java函数重载与多态性实现

发布时间:2023-06-26 07:40:08

Java函数重载和多态性是Java编程语言最基本的运用,当同一个类中有多个方法具有相同的名字同时参数列表也不同,这个技术在Java中被称为函数重载。而多态性则是在运行期间决定使用哪一个具体的方法,使得在编译时不能确定具体实现的方法。

一、Java函数重载

Java中的函数重载已经是最常见的了,其核心思想就是同一个类中的多个方法函数名相同,但是参数列表不同。所以Java虚拟机可以根据不同的传递参数类型自动匹配对应的方法。

下面是代码示例:

//Java代码
public class OverloadDemo{
    public static void main(String[] args){
        //调用不同的函数
        int a = add(1, 2);
        double b = add(1.0, 2.0);

        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }

    //整数相加
    static int add(int a, int b){
        return a + b;
    }

    //浮点数相加
    static double add(double a, double b){
        return a + b;
    }
}

上述代码中包含了两个函数名相同的函数add,但是两个函数的参数类型不同,分别为int和double。因此可以使用传递的参数类型来区别调用不同的函数。也可以在同一个函数中对不同的参数类型做出不同的响应。例如,可以在一个函数中使用if语句语句来判断传递的参数类型。

二、Java多态性

Java中的多态性是不同于C++的,它在Java中是基于继承和接口的。Java中的多态性强调的是引用变量的多态性。一个引用变量可以指向不同的实例化对象,同一引用变量通过对不同的实例化对象调用同样的方法,达到不同的结果。这就是Java中的运行期多态性。

下面是反例:

//Java代码
class Animal{
    public void eat(){
        System.out.println("Animal eat food");
    }
}

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

class Cat extends Animal{
    @Override
    public void eat(){
        System.out.println("Cat eat fish");
    }
}

public class PolymorphicDemo{
    public static void main(String[] args){
        Animal a = new Dog();
        Animal b = new Cat();
        a.eat();
        b.eat();
    }
}

上述代码中的关键是子类Dog和Cat对父类Animal的eat()方法进行了重写。当设置一个Animal类型的a和b时,使用new Dog()和new Cat()来实例化这两种不同的对象。在调用eat()方法时,会执行不同的具体实现,这个就是多态。

总结:

Java的函数重载和多态性都是在Java编程语言中最基本的部分,是每个Java程序员必须要熟练掌握的。同时Java中的代码可以通过这些特性,达到灵活重用代码的目的,从而编写出更为健壮的程序。