Java中field的覆写_Java中方法的覆写
【套装4本】java编程思想4第4版+
402.5元
包邮
(需用券)
去购买 >
一、方法的重写概念
之前说了子类如果继承了一个父类,那么子类就会拥有父类的方法(不包括构.造方法)和属性,此时如果在子类中定义了一个和父类一样的方法,这种现象叫做子类覆写(重写)了父类的方法。
DEMO:重写父类父类方法
以上的代码如果实例化一个Stundent子类对象,然后调用getInfo()则调用的是子类还是父类的getInfo()方法呢?
DEMO:观察代码
发现了调用的是子类中的方法,就是说子类的getnfo()覆盖了父类的getInfo()方法,其实上在调用的时候先在子类中查找调用的方法,如果有则直接调用,如果没有就往父类中查找,如果还没有继续往父类的父类中查找,如果最终都没有找到,则编.译不通过。
二、实现覆写需要哪些要求
1、要求子类的方法名称和父类的一致,而且参数列表要一致。
在主方法调用了getInfo()方法,会Student类中查找该方法,但是Student类中没有这个无参数的getInfo()方法,所以往父类中查找,最后就调用了父类的getInfo()
2、如果子类的方法的访问权限和父类的方法的访问权限不同呢?
子类中重写的方法的访问权限只能比父类的大,不能比父类的小,也就是说子类重写的方法不能拥有比父类更为严格的访问权限(正常开发访问权限都是一样的)。
3、如果子类覆写的方法和父类的方法返回值不一样呢?
如果父类方法和子类覆写 的方法的访问权限一样则返回值必须一致,如果访问权限不一样则返回值可以不--致(正常开发中返回值和访问权限都是--致的)
面试题:请说明重载和重写的区别?
●重载:
发生在一个类中
对返回值没有要求(但是正常都会保持- -致)
对访问权限没有要求(但是正常都会保持一致)
表示重载的单词是overloading
●重写:
发生在继承关系中(子类和父类)
子类不能拥有比父类更小的访问权限
如果子类和父类访问权限--致则返回值必须要相同,否则可以不同
表示重写的单词是override
总结:
1、方法重写的概念
2、方法重写的要求.
3、如果子类覆写了父类的方法,那么在调用的时候是调用子类的方法
有完整的Java初级,高级对应的学习路线和资料!专注于java开发。分享java基础、原理性知识、JavaWeb实战、spring全家桶、设计模式、分布式及面试资料、开源项目,助力开发者成长!
欢迎关注微信公众号:码邦主
java 11官方入门(第8版)教材
79.84元
包邮
(需用券)
去购买 >
Java中field的覆写_Java中方法的覆写相关推荐
- java实体类怎么写_Java中(entity)实体类的书写规范
在日常的Java项目开发中,entity(实体类)是必不可少的,它们一般都有很多的属性,并有相应的setter和getter方法.entity(实体类)的作用一般是和数据表做映射.所以快速写出规范的e ...
- java中相对路径怎么写_java中如何使用相对路径读取文件
java中使用相对路径读取文件的方法:1.使用文件[File file = new File("src/test.txt")]方法:2.使用类的相对路径:3.使用当前线程的类加载器 ...
- java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?
这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解.比如你可能都见过@override,它代表的就是一个注解.但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够 ...
- java的异常有哪些类_Java中的异常类型有哪些
1. java.lang.nullpointerexception 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对 ...
- java super是引用变量吗_Java中super的几种用法并与this的区别
1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base" ...
- java list 去重 相同的相加_Java 中的数据流和函数式编程 | Linux 中国
学习如何使用 Java 8 中的流 API 和函数式编程结构.-- Marty Kalin 当 Java SE 8(又名核心 Java 8)在 2014 年被推出时,它引入了一些更改,从根本上影响了用 ...
- java中输出时 什么作用_JAVA中输入和输出处理(Java I/O)重点总结
文件-使用File类操作文件: 什么是文件? 文件可认为是相关记录或放在一起的数据的集合. 文件一般存储在哪里? 储存在存储设备里. Java程序如何访问文件? Java API:java.io ...
- java 怎么把list流化_Java 中的数据流和函数式编程
原标题:Java 中的数据流和函数式编程 学习如何使用 Java 8 中的流 API 和函数式编程结构.-- Marty Kalin(作者) 当 Java SE 8(又名核心 Java 8)在 201 ...
- java中volatile关键字的含义_java中volatile关键字的含义
转自:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html 在java线程并发处理中,有一个关键字volatile的使用目前存 ...
最新文章
- Linux多台服务器共用密钥ssh自动登陆
- python的assert(断言)异常步骤机制
- 常考数据结构与算法:进制转换
- tcp 的ack, seq
- 托盘图标菜单_全新开始菜单和任务栏,Windows 10X 抢先体验
- 客户连接多个服务端_Dubbo源码解析之客户端Consumer
- leetcode 368. Largest Divisible Subset | 368. 最大整除子集(动态规划详解)
- 2017年,我的身边发生了那些事?
- 20款漂亮的长阴影 LOGO 设计作品【附免费生成工具】
- VSTS2008和FTS2008的系统要求好高啊~
- Python2、3字典比较函数
- Javascript的websocket的使用方法
- 随机森林-科比生涯数据集分析与预测
- 小宝挪车自研第二代挪车通知技术,保护隐私无死角!
- 小甲鱼Python第十九讲(函数,我的地盘听我的)
- 学习微信小程序开发框架之了解JavaScript
- 细节6:算术右移和逻辑右移
- 管理的角度分析:团队建设、团队管理、团队文化、沟通与辅导、招聘与解雇等
- 苹果ios超级签名源码包java版带分发页面支持安卓合并
- SpringBoot+vue实现前后端分离的简历系统
热门文章
- Python学习笔记:常用第三方模块(1)
- 一文解决new/delete与malloc/free相关问题:区别?注意事项?使用方式?
- list::splice函数的用法与参数解释
- Matlab对话框总结
- [云炬python3玩转机器学习] 5-3简单线性回归的实现
- [C++调试笔记]diag.cpp
- VTK修炼之道62:体绘制_固定点光线投影体绘制与GPU加速光线投影体绘制
- Nhibernate 三种配置方式
- WINDOWS键盘事件的挂钩监控原理及其应用技术
- 从后台传给前台的url字符串值的注意事项