首页 课程 师资 教程 报名

Java中的方法覆盖和方法重载

  • 2022-08-08 11:41:11
  • 422次 星辉

Java 编程语言是面向对象编程的最佳选择。有了类、对象、继承、 多态等概念,使用Java变得非常容易。易于访问和简单的语法使代码高效且不那么复杂。

Java中的方法重载是什么?

Java方法重载允许方法具有基于参数或参数类型而不同的相同名称。它可能与编译时多态性有关。以下是我们在 Java 中重载方法时必须牢记的一些要点。

我们不能重载返回类型。

虽然我们可以重载静态方法,但参数或输入参数必须不同。

如果两个方法只有一个静态关键字不同,我们就不能重载它们。

与其他静态方法一样,main() 方法也可以重载。

让我们看一个简单的程序来了解方法重载在python中是如何工作的。

public class Div{
public int div(int a , int b){
         return (a / b); } 
public int div(int a , int b , int c){
         return ((a + b ) / c); } 
public static void main(String args[]){
Div ob = new Div();
ob.div(10 , 2);
ob.div(10, 2 , 3);
}
}

输出:

5          
4

在上面的程序中,我们有两个同名但参数不同的方法。这就是方法重载在Java中的工作方式。

为什么要方法重载?

在 Java 中使用方法重载的主要优点是它使我们可以自由地不为做同样的事情而一次又一次地定义函数。在下面的例子中,这两个方法基本上是在进行除法,所以我们可以有不同的方法,名称相同,但参数不同。它还有助于编译时多态性。

重载 main() 方法:

以下是在 java 中重载 main() 方法的示例。

public class Edureka{
public static void main(String[] args){
System.out.println("hello");
Edureka.main("edurekan");
}
public static void main(String arg1){
System.out.println(" welcome" + arg1);
Edureka.main("welcome" , "to edureka");
}
public static void main(String arg1 , String arg2){
System.out.println("hello" , +arg1 , +arg2);
}
}

输出:

你好,欢迎 edurekan
你好,欢迎来到 edureka

方法重载示例

在java中重载静态方法的程序。

public class Test{
public static int func(int a ){
       return 100;
}
public static char func(int a , int b){
      return "edureka";
}
public static void main(String args[]){
System.out.println(func(1));
System.out.println(func(1,3));
}
}

输出:

100
教育

程序重载三个同名方法。

public class Add{
public int add(int a , int b){
       return (a + b);
}
public int add(int a , int b , int c){
       return (a + b + c) ;
}
public double add(double a , double b){
       return (a + b);
}
public static void main( String args[]){
Add ob = new Add();
ob.add(15,25);
ob.add(15,25,35);
ob.add(11.5 , 22.5);
}
}

输出:

40
75
34

Java中的方法覆盖是什么?

java中的继承涉及父类和子类之间的关系。每当两个类都包含具有相同名称和参数或参数的方法时,可以确定其中一个方法将在执行期间覆盖另一个方法。将执行的方法取决于对象。

如果子类对象调用该方法,子类方法会覆盖父类方法。否则,如果父类对象调用该方法,就会执行父类方法。

方法覆盖还有助于在 java 中实现运行时多态性。让我们举一个简单的例子来了解方法覆盖在 java 中是如何工作的。

class Parent{
void view(){
System.out.println("this is a parent class method);
}}
class Child extends Parent{
void view(){
System.out.println("this is a child class method);
}}
public static void main(String args[]){
Parent ob = new Parent();
ob.view();
Parent ob1 = new Child();
ob1.view();

输出:

这是一个子类方法

方法覆盖的规则

访问修饰符只能允许对被覆盖的方法进行更多访问。

final方法不支持方法覆盖。

不能覆盖静态方法。

私有方法不能被覆盖。

覆盖方法的返回类型必须相同。

我们可以使用 super 关键字在覆盖方法中调用父类方法。

构造函数不能被覆盖,因为子类和父类不能有同名的构造函数。

方法覆盖示例

使用 super 关键字显示覆盖的程序

class Parent {
void show(){
System.out.println("parent class method");
}
class Child extends Parent {
void show(){
super.show();
System.out.println("child class method");
}
public static void main(String args[]){
Parent ob = new Child();
ob.show();
}
}

输出:

父类方法
子类方法

以上就是关于“Java中的方法覆盖和方法重载”的介绍,大家如果想了解更多相关知识,可以关注一下星辉的Java星辉在线学习,里面的课程内容从入门到精通,细致全面,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交