为了账号安全,请及时绑定邮箱和手机立即绑定

重写,重载,傻傻分不清楚!!!

重写,重载,傻傻分不清楚!!!

求大神帮我分析下,最好能有例子说明;

拜托了!!

正在回答

6 回答

重载一般是在一个类中进行的,函数或方法名相同,参数个数或类型不同区分调用的。

eg:public double sum(int a,int b)(){}       public double sum(int a,int b,int c)(){}

public double sum(double a,int b)(){}等等像这样子的就是重载。

而重写是指函数继承中,子类要对父类的某个方法进行改动时所进行的操作。

eg:父类(如动物)中定义一个方法 输出“动物会跑”,你可以在子类(如狗)中定义同样的方法 输出“狗会跑”将父类覆盖掉。

0 回复 有任何疑惑可以回复我~
#1

木刻雪原 提问者

非常感谢!
2016-07-11 回复 有任何疑惑可以回复我~

还要例子?

给你例子。

abstract class A   {

    public A(){}  //这个是无参的构造函数

    public A(int a){}  //这个是有参数的构造函数。这两个方法名字是一样的,但是参数不同,称为方法的重载

    public abstract  void say(){

            system.out.println("这个A 类的say方法")

    };

}

class B  extexds A{

    public void say(){

        //这个地方如果什么都不写就是直接使用父类的方法,直接打印这个A 类的say方法

        system.out.println("这个是B 类重写A 类的say方法")

        //但是如果A 类的方法你不想要,而是想打印"这个是B 类重写A 类的say方法"这句话,就需要重写父类的say方法。这个就叫重写

    }

}

0 回复 有任何疑惑可以回复我~
#1

木刻雪原 提问者 回复 慕粉慕名而来

不好意思,不好意思,我在你的回答里发现一个问题,等我把这个问题在新问题里问出来,然后给你一次最佳,算是补偿你的,好么,大哥别生气!!!
2016-07-11 回复 有任何疑惑可以回复我~
#2

慕粉慕名而来 回复 木刻雪原 提问者

额。。我只是发泄一下而已,没别的意思。还有不只是构造方法,我是用了构造方法举例 的,有点误导你了,只要是方法都可以的,就像你用了很多原生的方法提示相同的方法有很多给你选择啊,只是都是参数不一样而已。。不用刻意 给我最佳的。只是说着玩的而已。
2016-07-11 回复 有任何疑惑可以回复我~
#3

木刻雪原 提问者 回复 慕粉慕名而来

赞赞赞
2016-07-11 回复 有任何疑惑可以回复我~
查看1条回复

方法重载:方法名相同的方法必须在同一个类中,且方法参数的个数、类型或者顺序不同,与方法的修饰符或者返回值没有关系;

方法重写:方法是从父类继承过来的,但是当对于父类的方法实现功能不满意时可以在子类中重写,方法的名称、参数类型、参数个数以及返回类型必须与父类的方法相同

0 回复 有任何疑惑可以回复我~

重写是父类的方法不能满足需求,我们对他进行改造他们的函数名,函数返回值和参数必须相同

而重载是返回值,参数可以不同但是方法名必须相同,但是返回值不能作为区分重载函数的标志

0 回复 有任何疑惑可以回复我~

呵呵哒。这有什么分不清的,他们两个本来就没有什么关系。

重写是继承关系里面的,继承父类的方法,如果方法子类不适用,可以重写父类的这个方法而已。

而重载是构造函数里面的方法。方法名字一样,但是里面的参数不一样这叫重载。

这两个东西没有关系的。你别把他们放在一起混淆了,你只要记得继承里面是重写。构造函数里面是重载

0 回复 有任何疑惑可以回复我~

重写(覆盖,override,overwrite): 重写父类的方法。

重载(overload): 一个类里有多个同名方法。怎么区分它们呢,它们有不同的传入参数(不同类型、不同个数),使用这些方法时传入参数的类型、个数决定了用的哪个方法。


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第二季 升级版
  • 参与学习       530706    人
  • 解答问题       6091    个

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

进入课程

重写,重载,傻傻分不清楚!!!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信