精华内容
下载资源
问答
  • JAVA中的重写、重构和重载的概念对于一个刚入门Java爱好者来说,很容易能混,下面就说一下我对着三个概念的理解。 1.重写,又称为覆盖,应用于父类和子类之间,子类中的成员方法和父类中的成员方法同名,但方法的...

       JAVA中的重写、重构和重载的概念对于一个刚入门Java爱好者来说,很容易能混,下面就说一下我对着三个概念的理解。

    •      1.重写(override),又称为覆盖,应用于父类和子类之间,子类中的成员方法和父类中的成员方法同名,但方法的实现或者方法的权限(只能比父类方法的权限大)或者方法的返回值类型(只能是父类返回值类型的子类)不同。
    •      2.重构,是重写的一种,即子类成员方法和父类中成员的方法名相同,只有方法的实现不同。
    •      3.重载(overload),应用于同一个类中,同一个类中不同的成员的方法名相同,但方法入参的类型、个数、顺序不同。但容易忽略的一个重载是不定长参数的方法也是同名一般方法的重载。


          
         从上面的介绍可以看出,重写是父类和子类之间的玩的,主要玩的是方法实现;重载是同一个类自己玩的,主要玩的是入参,不能通过单一的返回值不同说是重载。

    父类:
     

    public class A {
    
    protected static int i = 10;  
    protected A print(int j,double x)
    {
    System.out.println("A print");
    return new A();
    
    }
    
    //重载起源于构造函数,如下面的有参构造和无参构造就是重载
    public A() {
    super();
    System.out.println("A");
    }
    
    public A(int i) {
    super();
    this.i = i;
    }
    }
    


    子类:
     

    public class B extends A {
    
    /**
     * 重写A中的 protected A print(int j,double x)
     * 权限变大,返回值变为A的子类,方法实现不同(三者只要变一个就构成重写)
     */
    public B print(int j, double x)
    {
    j++;
    System.out.println("B print");
    return new B();
    }
    
    
    /**
     * 重构,重写的一种,只是方法实现变了。(和上面的方法不能构成重载,所以编译报错,只能注掉)
     */
    // protected A print(int j,double x)
    // {
    // j++;
    // return new A();
    //
    // }
    
    
    /**
     * 重载 print(int j, double x)
     * 入参个数变化
     */
    public B print(int j)
    {
    j++;
    System.out.println("B print");
    return new B();
    }
    
    
    /**
     * 重载 print(int j, double x)
     * 入参种类变化
     */
    public B print(int j, long l)
    {
    j++;
    System.out.println("B print");
    return new B();
    }
    
    
    /**
     * 重载 print(int j, double x)
     * 入参顺序变化 (返回值类型发生了变化,不影响,不能单独作为重载的标准)
     */
    public A print(double x, int j)
    {
    j++;
    System.out.println("B print");
    return new B();
    }
    
    
    /**
     * 重载 print(int j, double x)
     * 不定长参数方法,入参相当于数组
     */
    protected void print(int ...is)
    {
    System.out.println("B print");
    }
    }

     

    展开全文
  • 重构 重写 重载

    2017-06-06 10:36:27
    即只是父类的方法名相同,方法的签名并不相同;即不是同一个函数;重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式架构更趋合理,提高软件的扩展性维护性。...

    转载自:http://blog.csdn.net/u011031854/article/details/11570885

    重构(Refactoring):

    即只是和父类的方法名相同,方法的签名并不相同;即不是同一个函数;重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式架构更趋合理,提高软件的扩展性和维护性。定义强调是在不改变"软件之可察行为"前提下,不改变"软件之可察行为"就是说让修改不影响外部使用程序(程序员),在其外部来看,程序的行为和结果没有任何的变化.重构只是对程序内部结构进行调整,让代码更加容易理解,然后更容易维护。

    <------------------------------------------------------------------------------------------------------------------------------------>

    重载(overload):

        在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法。简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法。参数类型,或者参数个数不同

    <------------------------------------------------------------------------------------------------------------------------------------>

    重写(override):

        即把父类的方法覆盖了,重新实现;即是同一个函数;

        通常,派生类继承基类的方法,因此,在调用对象继承方法的时候,调用和执行的是基类的实现.但是,有时需要对派生类中的继承方法有不同的实现

        例如,假设动物类存在""的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法

        "重写"基类方法就是修改它的实现或者说在派生类中重新编写。

    重写的特点:

        1、必须是在继承里,

        2、方法名、返回值类型、参数个数和参数类型 都必须相同

        3、派生类重写的方法的访问权限不能低于基类的权限

        4、派生类抛出的异常应该和基类相等或比基类更小

    展开全文
  • 重构重载

    2013-09-16 19:33:45
    重载是指在同一个类中有若干同名而参数不同的方法,使用不同的参数可以调用同名方法的不同版本; 重构是指在子类中用与父类中相同的方法名、返回类型参数,重新构造父类的某一成员方法
    重载是指在同一个类中有若干同名而参数不同的方法,使用不同的参数可以调用同名方法的不同版本;
    重构是指在子类中用与父类中相同的方法名、返回类型和参数,重新构造父类的某一成员方法。
    展开全文
  • 最近居然被重构和重载两个概念弄晕了。刚刚找到了篇文章,算是补充下基础吧,主要是重构的概念,直接复制过来的: 首先这三个概念描述得范围是不同的: 重构, 是对软计设计方法的描述, 这个层面是架构和设计方法,你...

    最近居然被重构和重载两个概念弄晕了。刚刚找到了篇文章,算是补充下基础吧,主要是重构的概念,直接复制过来的:

    首先这三个概念描述得范围是不同的:

    重构, 是对软计设计方法的描述, 这个层面是架构和设计方法, 
    你今天写了一个应用, 读txt文档并显示, 几天后,用户的新需求来了, 告诉你, 我要读一个XML文本并显示, 这个时候, 你从前的代码需要做变更, 这个变更的动作, 就叫做重构;
    更小一点的例子,你维护的模块有个类叫做Class_B, 别人不爽, 觉得名字不好理解, 要你更改成TXTReader, 并附上注释,
    也叫做重构.

    重构是一个软件维护的通用技巧, 重构的具体做法, 可以通过重写或者重载等, 但不限于此, 更改注释, 更改函数名类名等,都可以称之为重构,
    重构的目的是为了让软件容易维护, 修改其Bug等.


    覆盖(重写), 即override(Overwrite), 表达的都是一个含义,《Thinking in java》中用的是Override, 翻译为覆盖, (跟他们相区别的概念为OverLoad[重载])

    override(Overwrite)是子类覆盖基类的方法.
    父类的protect或者public方法无条件的成为子类的方法,但子类不爽, 想要将继承过来的方法改造一下。 这就是override, 方法名,

    参数值,都是一模一样的。但内容体(方法中的代码)已经不同了。

     


    重载(Overload)就是通过方法的参数识别不同的函数
    比如你有一个AMethod()不带参数, 然后你用了一个另外相同名称的方法,带一个参数AMethod(String para),
    这个过程就叫做重载.


    以上原文链接:http://blog.csdn.net/ostrichmyself/article/details/4633245

     

    下面补充点个人对重载的见解及迷惑:

    有一类情况:父类中有方法AMethod(),子类中有相同名称的方法AMethod(int i),对于这种情况算不算是重载呢?

    首先我们要明确满足C#重载的条件:方法名称相同,参数列表不同。 这里隐藏的两种情况:

    1、方法名相同,方法所带的参数个数不同 (包括了参数个数和参数类型皆不同)     2、方法名相同,方法所带参数类型不同。  

    方法返回值并不作为重载必需的判断条件,所以我的理解是对于上面这种情况应该也属于重载。

    但是网上也有一些资料中的判断依据中说重载是必需发生在同一个类内部,也就是必需满足先决条件同类才能发生重载。父类和子类这种情况不属于重载。这个也弄得我有点迷惑,期待各位大侠的解说。

    转载于:https://www.cnblogs.com/huangqian/archive/2012/03/28/2420820.html

    展开全文
  • java中,重构重载、重写 1、什么叫重构? 答:重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式架构更趋合理,提高软件的扩展性维护性,系统发展到一定阶段后,使用重构的...
  • java重构重载、重写

    2016-04-04 11:44:00
    重构:就是代码优化,或则你可以理解为代码的修改!  例:开始你的类名是A现在要改为B也称为...重写:发生在父子类中,子类中有一个方法名,参数列表返回值类型与父类相同的方法完全相同时, 称之为方法重写重构...
  • C#之重构重载

    千次阅读 热门讨论 2014-01-27 17:29:17
    1、先说重构,接着上一篇的例子,猫狗类继承父类动物,但是他们都有叫这个方法,除了叫的声音不一样之外,其余的都是一样的,这样造成了代码的重复,如果要修改这个方法得同时修改这两个子类,非常的麻烦。...
  • 重载重构和重写

    2014-02-23 20:38:38
    重载(Overload):在同一个类当中,有一些同名的方法,但这些方法的参数列表不同,称之为重载。  重构:就是代码的优化,也可以说是代码的修改,甚至是修改类名,都可以称之为重构。  重写(Override):也称为...
  • 重构&重载&重写

    2010-10-08 09:21:00
      重写 在一个类中,函数名相同,参数或返回值不同   重载 子类写一个父类相同的函数名,参数,返回值来覆盖   重构 是对软计设计方法的描述, 这个层面是架构...
  • 重构, 是对软计设计方法的描述, 这个层面是架构设计方法,例如有一个文档一开始叫做:names.txt,过几天你发现这个文档的名字怎么看怎么不顺眼,就是想改名字,这可以叫做是重构重构是一个软件维护的通用技巧, ...
  • 1.重载构造函数是一种...重载虽然起源于构造方法,但是在普通方法中也可以使用方法重载方法重载就是在同一个类中允许同时存在多个同名方法,只要这些方法的参数类型、个数、顺序不同即可。package com.java.t...
  • 重载和重构的区别

    千次阅读 2018-03-20 09:35:30
    (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数不同的定义。调用方法时通过传递给它们的不同参数个数参数类型来决定具体使用哪个方法, 这就是多态性。(3) 重载的...
  • 重写、重载和重构

    千次阅读 热门讨论 2016-02-23 20:38:53
    重载、重写和重构在之前就学习过,但到现在仍然不能准确的说出它们到底有什么区别,该怎么具体的应用,看来真是书到用时方恨少,这种状况是不是特别严重?真的该总结回顾了。 重写(override): 什么是重写: ...
  • 重载:1同(方法名)1不同(方法的签名个数类型)。 重写:2同(方法签名)1小(异常)1大(访问修饰符)。 Java技术交流、学习、讨论,QQ群:67844123 转载于:...
  • 重构(Refactoring)就是通过调整程序代码改善软件的质量、性能,使其程序的设计模式架构更趋合理,提高软件的扩展性维护性,系统发展到一定阶段后,使用重构的方式,不改变系统的外部功能,只对内部的结构进行...
  • 重写:一般在面向对象编程语言中重写指的是方法重写,方法重写又称方法覆盖,就是子类可继承父类中的方法,而...重载:在面向对象编程中分为方法重载和运算符重载方法重载是让类以统一的方式处理不同类型数据的一...
  • 方法重载还是比较好理解的,就是在类的内部,定义多个方法,这些方法方法名字相同,参数类型参数个数不同,注意,返回值类型并不能区分重载;看代码: public void show(int a,double b){ } public void ...
  • 首先这三个概念描述得范围是不同的: 重构, 是对软计设计方法的描述, 这个层面是架构设计方法, e.g: 你今天写了一个应用, 读txt文档并显示, 几天后,用户的新需求来了, 告诉你, 我要读一个XML文本并显示, 这个时候, ...
  • 上次我们介绍了VB2005的... 创建方法重载(Create Overload) Visual Basic支持可选参数,这给我们开发Office程序时带来巨大的方便,然而却不推荐在自己的代码中使用可选参数。因为可选参数只有Visual Basic支持,C#
  • 方法是具名的语句序列,如果学过其他编程语言,比如c,c++,可以将方法视为与函数相似的东西. 声明方法 声明c#方法的语法如下: returnType methodName(ParameterList) { //主体语句 } returnType是类型名称,指定...
  • 重载重构

    千次阅读 2006-09-11 11:33:00
    在JAVA中: 1. 函数重载(overload)是一个类中声明了多个同名的方法,但有不同的参数个数和... 方法的重写Override和重载Overload是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载
  • Java中的重载、重写和重构的区别

    千次阅读 多人点赞 2018-12-11 19:03:44
    1、重载 重载(overloaded):重载就是在同一个类中允许同时存在一个...由于这些构造方法都需要根据类名进行命名,为了让方法名相同而形参不同的构造方法同时存在,必须用到“方法重载”,虽然方法重载起源于构造方...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 158
精华内容 63
关键字:

方法重构和重载