问答详情
源自:9-2 Java 中的方法重写

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

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

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

拜托了!!

提问者:木刻雪原 2016-07-11 14:30

个回答

  • 轻烟3586225
    2016-07-11 15:00:54
    已采纳

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

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

  • 慕粉慕名而来
    2016-07-11 15:10:42

    还要例子?

    给你例子。

    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方法。这个就叫重写

        }

    }

  • 慕粉3162103
    2016-07-11 15:05:42

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

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

  • 史蒂夫chou
    2016-07-11 15:02:00

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

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

  • 慕粉慕名而来
    2016-07-11 15:01:42

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

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

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

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

  • 慕粉3620947
    2016-07-11 14:56:51

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

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