方法的重写

重写(override/overwrite)定义
子类继承父类易后,可以对父类中同名同参数的方法,进行覆盖操作

应用
重写以后,当创建子类对象以后,通过子类对象调用父类中的同名同参数方法时,实际执行的是子类重写父亲的方法。

重写的规定
约定俗成:子类中的叫重写的方法,父类中的叫被重写的方法
1.子类重写的方法的方法名和形参列表与父类被重写的方法名和形参列表相同
2.子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符
特例:子类不能重写父类中声明为private权限的方法
3.返回值类型:

  • 父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型也只能是void
  • 父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类
  • 父类被重写的方法的返回值类型是基本数据类型(比如是double),则子类重写的方法返回的数据类型必须是相同的基本数据类型(必须也是double)

4子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型

ps:

  • 重写方法在IDEA一般是打几个字母后按ctrl+空格
  • 子类和父类的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(一定不是重写)

方法的重写、方法的重载的区别

tips:实际开发中,private和public用的最多

super关键字

1.super理解为:父类的
2.super可以用来调用:属性、方法、构造器
3.super的使用
3.1在子类的方法或构造器中,使用super.属性或super.方法的方式,显式的调用父类中声明的属性或方法。 通常情况下,我们习惯省略super.
3.2特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用“super.属性”的方式,调用父类的属性。
3.3 特殊情况:当子类重写了父类中的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用“super.方法”的方式,调用父类中被重写的方法。
4.super调用构造器
4.1在子类的构造器中显式使用"super(形参列表)"的方式,调用父类中声明的指定的构造器
4.2“super(形参列表)”的使用,必须声明在子类构造器的首行
4.3我们在类的构造器中,针对“this(形参列表)”或“super(形参列表)”只能二选一
4.4在构造器的首行,没有显式地声明“this(形参列表)”或“super(形参列表)”,则默认调用的是父类中空参的构造器,也就是super()。
4.5在类的多个构造器中,至少有一个类的构造器中使用了super(形参列表),调用父类的构造器

super和this只能在构造器里二选一,且只能作为构造器的第一句出现

子类对象实例化全过程

1.从结果上看,子类继承父类以后,就获取了父类中声明的属性或方法(继承性)。创建子类的对象,在堆空间中,就会加载所有父类中声明的属性。
2.从过程上来看,当我们通过子类的构造器创建子类对象时,我们一定会直接或间接地调用其父类的构造器,进而调用父类的父类构造器,…,直到调用了java.lang.Object类中空参的构造器为止。正因为加载过所有父类的结构,所以才可以看到内存中有父类中的结构,子类对象才可以考虑进行调用。

注意:虽然创建过程中调用了父类的构造器,但创建过程中只创建了一个对象。

面向对象9:方法的重写、super关键字、子类对象的实例化过程相关推荐

  1. [转载] JAVA面向对象之代码块 继承 方法的重写 super关键字与重写toString()方法介绍

    参考链接: 可以重写Java中的私有方法吗 JAVA面向对象之代码块与继承 代码块分类 局部代码块 作用:限制变量生命周期 书写位置:在方法中 构造代码块 开发中很少使用 书写位置:类中  方法外 调 ...

  2. Java自学笔记(13):【面向对象】方法覆盖,final关键字,对象转型

    方法同名时:方法重载,方法覆盖 同一类内的方法同名:方法重载 子类与父类方法同名:方法覆盖 //在包person下 //Person.java package person;public class ...

  3. Java-Day12 面向对象的三大特征之封装、继承,单例模式(饿汉式、懒汉式)、方法重写 (覆盖)、注解 (annotation)、super关键字、对象的创建流程超详细

    目录 1. 面向对象的三大特征之封装 1.1 封装的含义 1.2 封装的目的 1.3 封装的优点 1.4 封装的实现过程 1.5 拓展知识:JavaBean 2. 面向对象的三大特征之继承 2.1 继 ...

  4. java子类创建过程_JAVA入门小小白学习中ing(匿名对象、封装性、继承性、子类对象的创建过程、spuer关键字(用法一))...

    小小白慢慢学习中ing 第十二天 努力努力 本日内容(匿名对象.封装性.继承性.子类对象的创建过程.spuer关键字) 1.匿名对象 创建对象的语法:Person p1 = new Person(); ...

  5. 【java基础面向对象】方法的重写、 package和import包、访问控制修饰符,static,final,static final,抽象方法

    目录 1. 方法的重写(override/overriding):重新写.覆盖 2. package和import: 3. 访问控制修饰符:-----------------------保护数据的安全 ...

  6. DYA9面向对象中--方法的重写

    方法重写/覆盖(override) 方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称.返回类型.参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法 方法重写注意事项和使用细节 1,子类 ...

  7. (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

    1.访问控制(笔试题) 1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问 ...

  8. 第十三题:子类要调用继承自父类的方法,必须使用super关键字。

    第十三题 子类要调用继承自父类的方法,必须使用super关键字. A正确 B错误 懵逼树上懵逼果,懵逼树下你和我,首先来一段代码 如果子类没有重写父类的方法,调用父类的方法用不用super关键字结果都 ...

  9. 3.2.2 方法的重写 3.2.3 super关键字

    3.2.2 方法的重写 在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写.在子类中重写的方法需要和父类被重写的方法具有相同的方法名.参数 ...

  10. 20面向对象三特征 之继承 方法重写 super

    继承是:多个类有重复内容,把重复内容放到一个新类中,就可以通过extends关键词去让原来的类和新类产生继承关系,子类只能拿到父类一部分信息.通过extends关键词去指明类与类之间的关系,一个父类可 ...

最新文章

  1. Wsus存储更新文件的磁盘已满
  2. linux系统防火墙相关问题及常用命令介绍
  3. 首次使用Cesium加载3D数据不成功
  4. zwpython_零起点Python大数据与量化交易
  5. python自动排版 html_Python 实现自动完成A4标签排版打印功能
  6. openrowset excel 科学计数_txt的数据导入excel中身份证或银行卡显示成科学计数如何解决...
  7. 算法 --- 判断某个值是否在二叉搜索树中
  8. Java方法中数组_Java中数组常用方法的总结
  9. http与websocket(基于SignalR)两种协议下的跨域基于ASP.NET MVC--竹子整理
  10. ABP实现EF执行SQL(增删改查)解决方案
  11. 三菱plc恒压供水程序+威纶触摸屏程序本成已用于实际项目中
  12. C语言自学-简单的记录
  13. 有人在研究arroundme 吗,一个开源的php社会化网络程序
  14. jpeg图片的exif信息
  15. .NET Core剪裁器背后的技术
  16. Android基于百度地图的拖拽定位(地图可以拖动,定位图标不动)
  17. 7-3 小孩子才做选择,大人全都要 (10 分)
  18. 手把手教你开发一款简单的AR软件
  19. 生日了,总要写点什么
  20. 广度优先搜索(BFS)最短路径输出表示(三种方法)

热门文章

  1. Oracle DB优化-如何看SQL的执行计划+收集表的统计信息
  2. 一步步编写avalon组件02:分页组件
  3. VC和gcc在保证功能static对线程安全的差异变量
  4. 18-黑马程序员------OC语言学习笔记---封装
  5. VMware Workstation 9.0安装体验
  6. Apache创建虚拟目录绑定域名
  7. Mysql 索引的学习
  8. jsp页面什么时候用 .do 和 .jsp
  9. 13.15. ftp fs
  10. Unix整理笔记——在指定时间运行程序——里程碑M12