重写(Override)

重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

  • 重写的好处:子类可以根据需求,定义自己的与众不同(即子类可以根据需求实现父类的方法)

方法的重写规则:

  • 参数列表必须完全与被重写方法的相同。

  • 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类

  • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。

  • 父类的成员方法只能被它的子类重写。

  • 声明为 final 的方法不能被重写。

  • 声明为 static 的方法不能被重写,但是能够被再次声明。

  • 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。

  • 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。

  • 构造方法不能被重写。

  • 如果不能继承一个方法,则不能重写这个方法。

重载(Overload)

重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

重载规则

  • 被重载的方法必须改变参数列表(参数个数或类型不一样);

  • 被重载的方法可以改变返回类型;

  • 被重载的方法可以改变访问修饰符;

重写与重载区别

(1)方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同

(2)方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法

(3)方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。

转载于:https://www.cnblogs.com/bzbz/p/11493719.html

重写与重载(摘抄笔记)相关推荐

  1. Java继承、重写与重载 笔记

    1. Java继承 继承要符合的关系是:is-a,父类更通用,子类更具体. 1.1 继承的特性 子类拥有父类非private的属性,方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子 ...

  2. C# 继承实现父类方法、重写、重载

    继承是派生类(子类)去实现(重写<override>.重构<new>)基类(父类)的方法或属性.从而获取在派生类中要实现的功能. 子类调用父类构造方法,在父类中有个实现姓名和年 ...

  3. 009-对象—— 构造方法__construct析构方法__destruct使用方法 PHP重写与重载

    <?php /**构造方法__construct析构方法__destruct使用方法 PHP重写与重载*/ //构造方法:当实例化对象时,自动运行的方法 /*class channel{func ...

  4. 【Java基础】重写与重载

    为什么80%的码农都做不了架构师?>>>    重写(Override): 定义:在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动地继承父类 ...

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

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

  6. Java的重写和重载机制

    Java的重写和重载机制 张磊 zhangleispirit@gmail.com Java的重写和重载是两种在Java中经常提到的两组概念,它们在各个方面都有着很大的不同,本文主要在此做一个归纳总结. ...

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

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

  8. Java基础之重写与重载深入解析

    Java详解重写与重载 首语 总结java重写与重载的时候,在菜鸟教程看到很详细的解释,觉得很好,就搬过来了,侵删. url:https://www.runoob.com/java/java-over ...

  9. Java重载和重写6_深入理解Java中的重写和重载

    深入理解Java中的重写和重载 重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念.但是对于新手来说也比较容易混淆.本文通过两个简单的例子说明了他们之间的区别. ...

  10. Java 重写与重载

    方法的重写: 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变. 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法. 重写 ...

最新文章

  1. 蓝桥杯国赛-数正方形-java
  2. 根据值 加密后的值 算出key_Bugku:加密 rsa
  3. Alluxio 1.5集群搭建
  4. vue中的config配置
  5. 03-CA/TA编程:aes_auth demo
  6. 一道笔试题--求二进制数1的个数
  7. 第三次学JAVA再学不好就吃翔(part37)--接口概述
  8. 纯css3实现的鼠标悬停动画按钮
  9. c# 操作IIS应用程序池
  10. 【论文学习】Bringing Old Photos Back to Life
  11. mongodb转mysql思路_脚本 将阿里云 mongodb数据转成mysql
  12. Java使用OpenCV3.2实现视频读取与播放
  13. 基于SSM校园一卡通管理系统
  14. QAM信号的调制解调原理
  15. 企业微信有定位跟踪吗?企业微信会跟踪员工轨迹记录吗?
  16. u盘server2012服务器系统安装,如何安装原版Windows server 2012?U盘安装原版Windows server 2012方法...
  17. C++在指定目录生成txt文件
  18. kdd99数据集svm分类_使用svm和不平衡的twitter数据集进行三级情感分类的任务
  19. 【途牛旅游项目】项目环境搭建,实现登陆功能
  20. win7安装后无声音怎么办

热门文章

  1. 你为什么成为一名程序员?
  2. 关于C2100间接寻址的问题
  3. android 日记 app推荐,用这些 APP 来记录生活,再也不用担心无法坚持写日记
  4. 修复计算机之后东西还在吗,硬盘分区表修复后文件还在吗
  5. 解决spring-data-jpa 级联添加时,主表放弃对外键维护时外键字段为null
  6. c语言编程十进制转八进制算法,C语言十进制如何转八进制?
  7. 微信多开设置网络代理服务器,微信多开终极技巧,可随意控制数量已亲测很好用...
  8. Android dialog弹出报错Alert Dialog Unable to add window android.view.ViewRootImpl$W. permission denied
  9. javascript 实现1加到100
  10. 读取金山词霸的词库程序