Java中的重写与重载

来源:互联网 发布:数据分析统计表 编辑:程序博客网 时间:2024/05/29 16:22

1、重写/override
定义:父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。
在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
要求:方法名和参数都相同,返回类型是父类返回的类型或其子类。
示例:

public class Super{    public Super(){    }    public Object getLength(int[] a){        return a.length;    }}public class Son extends Super(){    public Son(){    }    //方法名和参数列表与父类方法相同,但是返回值可以是父类返回类型的子类    public int getLength(int[] a){      return a.length+1;    }}

2、重载/ overloading
定义:类中存在同名,但不同参数的方法
要求:同名,不同参数类型和个数,返回类型可以相同也可以不相同
目的:是程序可以以统一的方式处理不同类型数据。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。
实例:

public class Demo{    public int getLength(int[] a){    return a.length;    }    public int getLength(int[] a, int[] b){    return a.length+b.length;    }}
0 0
原创粉丝点击