目的

  最近的经历,被问到重构、重写、重载,今天在网上查资料学习。总结如下,希望对你有帮助。

重构、重写、重载

重构:通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理。提高软件的扩展性和维护性。通俗点说,重构就是当你发现代码的不足之处时,去改动它的结构,去优化它。

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

重写:子类通过@override来实现方法重写。在父类里声明了一个模糊的方法,并不给出详细的行为,在子类里,通过重写父类(同方法名,參数,返回值等)中的这种方法,让这种方法实例化,去适合子类。

  • override(Overwrite):是子类覆盖基类的方法。
  • 重写的特点:

1、必须是在继承里,

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

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

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

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

转载于:https://www.cnblogs.com/sunshine-blog/p/8303203.html

重写、重构、重载区别相关推荐

  1. java 非法重载_JAVA中重写和重载区别

    重写和重载区别 重写方法的规则如下: 参数列表:必须与被重写方法的参数列表完全匹配. 返回类型:必须与超类中被重写的方法中声明的返回类型或子类型完全相同 访问级别:一定不能比被重写方法强,可以比被重写 ...

  2. Java中的重写和重载区别

    重载就是多态的具体体现,可以改变参数和返回值.而重写必须相同. 重写与重载之间的区别 区别点 重载方法 重写方法 参数列表 必须修改 一定不能修改 返回类型 可以修改 一定不能修改 异常 可以修改 可 ...

  3. Java方法重写与重载

    目录 一.方法重载(overload) 概念 注意 二.方法重写(0verride) 概念 方法重写的应用场景 @Override注解 注意 三.重写与重载区别 访问修饰符 一.方法重载(overlo ...

  4. 【全网第一细,小白福利站】JAVA的重写和重载

    1,重写 1.1首先我们了解一下重写的目的以及要求 重写目的:子类可以继承父类的非私有化的方法,但是有的 时候父类的需求满足不了子类的需求了,这个时候需要重写父类非私有的方法 重写要求: 1.必须有继 ...

  5. 重写与重载的区别 以及 重写中super的使用

    重写是父类方法与子类方法有共同的参数名参数列表,返回类型必须父类的方法一致.子类的访问修饰符一定要大于等于父类的访问修饰符.如果在子类中还需要用到父类的方法,用super.method() 然后继续写 ...

  6. float 与 double、隐式类型转换、switch、重写与重载、Java 与 C++ 的区别、JRE or JDK

    1.float 与 double 1.1 字面量属于 double 类型,不能直接将 1.1 直接赋值给 float 变量,因为这是向下转型. // float f = 1.1; Java 不能隐式执 ...

  7. python重写和重载的区别_Java 重写(Override)与重载(Overload)

    Java 重写(Override)与重载(Overload) 重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的 ...

  8. Java 方法重写与重载的区别 示例 重载多数相加求和 重写toString()和equals()

    Java 方法重写与重载的区别 重载:在同一个类中,当方法名相同,形参列表不同的时候 多个方法构成了重载 重写:在不同的类中,子类对父类提供的方法不满意的时候,要对父类的方法进行重写. 名称\属性 E ...

  9. 01Java方法重写与重载的区别

    1.方法重载(Overload) 概念:: 在同一个类中,"功能1"和"功能2"功能相似,可以考虑将他们的方法名命名一致,这样代码既美观,又便于后期代码编写(容 ...

最新文章

  1. 公务员_只愿与一人十指紧扣_新浪博客
  2. YoutubeNet的数据答疑
  3. PHP关于curl_setopt几个参数设置的说明
  4. 解决RabbitMQ消息丢失与重复消费问题
  5. Idea debugger 无法启动-unable to open debugger port , java.net.SocketException socket closed
  6. 【Tiny4412】Uboot常用命令
  7. Educational Codeforces Round 73 (Rated for Div. 2) F. Choose a Square 线段树 + 二维转一维
  8. java北大oj1001_这个——北大 ACM POJ 1001 Exponentiation C/C++
  9. 【转载】关于网页尺寸的设置
  10. java 内部类 单例_确保对象的唯一性——单例模式 (四):一种更好的单例实现方法(静态内部类)...
  11. 突破验证,安装Media Player11.
  12. 【Java并发】Runnable、Callable、Future、FutureTask
  13. sql把字符数组转换成表
  14. 活动回顾 I 《传奇动物园》项目团队沙盘演练圆满结束!
  15. Python2.7版本的pip下载安装(win7 64位,Python2.7)
  16. 论文阅读《LSD-SLAM: Large-Scale Direct Monocular SLAM》
  17. jinjia2中for循环索引
  18. Z-Blog模板安装和使用教程
  19. 画论13 朱景玄《唐朝名画录》
  20. Invalid bound statement (not found): com.xxx.dao.xxxDao.selectByxx错误

热门文章

  1. adam算法效果差原因_冷库制冷效果差原因
  2. 利用闭包实现onclick事件传递参数
  3. Zabbix 3.0 配置企业微信报警(注册---测试)
  4. Python(八) 函数、模块
  5. python设置格式模板
  6. mouseevent tips
  7. 微软发布Visual Studio 2012 示例代码浏览器
  8. Android 编码规范:(六)消除过期的对象引用
  9. MongoDB学习笔记(一) MongoDB介绍及安装
  10. cesium billboard 设置距离控制可见度