java方法重载和重写(java方法重载和重写的区别)

Java方法重载

Java方法重载,指的是在同一个类中,可以定义多个同名的方法,但是这些方法的参数列表必须不同。

例如:

```
public class Test {

public void test() {
System.out.println("无参数");
}

public void test(int num) {
System.out.println("整型参数:" + num);
}

public void test(double num) {
System.out.println("双精度浮点型参数:" + num);
}

public static void main(String[] args) {
Test t = new Test();
t.test();
t.test(10);
t.test(3.14);
}
}
```

在这个例子中,我们定义了三个同名方法test,但是由于它们的参数列表不同,我们可以根据传递的参数类型来正确地调用相应的方法。

Java方法重写

Java方法重写,指的是在子类中重新定义父类的方法,方法名、返回值类型、参数列表以及访问修饰符都必须与父类中的方法一致。重写方法的实现需要满足父类方法的约束。

例如:

java方法重载和重写(java方法重载和重写的区别)

```
public class Animal {
public void move() {
System.out.println("动物可以移动");
}
}

public class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
}

public class Test {
public static void main(String args[]) {
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象

a.move();// 执行 Animal 类的方法
b.move();//执行 Dog 类的方法
}
}
```

在这个例子中,我们定义了一个Animal类和Dog类,其中Dog类继承自Animal类,并重写了move方法。在Test类的main函数中,我们分别实例化了一个Animal对象和一个Dog对象,并分别调用了它们的move方法,可以看到,Animal对象调用的是Animal类中定义的move方法,而Dog对象调用的是重写后的方法。

Java方法重载与重写的区别

Java方法重载与重写是Java中的两种方法多态性体现,它们共同点是它们都允许在类中定义同名的方法。不同点在于:

  • 重载方法可以在同一个类中定义,而重写方法必须在子类中定义;
  • 重载方法的参数列表必须不同,而重写方法的参数列表必须与父类方法一致;
  • 重载方法的返回值类型和参数列表可以不同,而重写方法的返回值类型和参数列表必须与父类方法一致,或者是它们的子类。

例如:

```
public class Animal {
public void move() {
System.out.println("动物可以移动");
}
public int eat(int num){
System.out.println("动物一次可以吃"+num+"斤食物");
return num;
}
}

public class Dog extends Animal {
public void move() {
System.out.println("狗可以跑和走");
}
public double eat(double num){
System.out.println("狗一次可以吃"+num+"斤食物");
return num;
}
}

public class Test {
public static void main(String args[]) {
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象

a.eat(5);// 执行 Animal 类的方法
b.eat(5);//执行 Dog 类的方法
}
}
```

在这个例子中,我们在Animal类中定义了一个eat方法,重载了两个不同参数的方法。在Dog类中重写了eat方法,并改变了参数类型和返回值类型。在Test类的main函数中,我们分别实例化了一个Animal对象和一个Dog对象,并分别调用了它们的eat方法。可以看到,Animal对象和Dog对象调用的是不同的eat方法。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/java7g5.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年4月24日 下午7:23
下一篇 2023年4月24日 下午7:23

猜你喜欢