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中的代码可以通过这些特性,达到灵活重用代码的目的,从而编写出更为健壮的程序。
