方法覆盖Override
继承作用:
基本作用:代码复用
重要作用:方法覆盖和多态机制
=============================================================================
什么时候需要方法覆盖(理解)
怎么进行方法覆盖(掌握)
方法覆盖的条件及注意事项(掌握)
===============================================================================
1、子类继承父类之后,当继承过来的方法无法满足当前子类的业务时,子类有权利对这个方法进行重新编写,有必要进行“方法的覆盖”。
方法覆盖:Override//方法重写(重新编写)overwrite
将继承过来的方法进行了覆盖;
当子类对父类继承的方法进行“方法覆盖”之后。子类对象调用该方法的时候,一定执行覆盖之后的方法。
方法重载:Overload。
当在一个类中,如果功能相似的话,建议将名字定义的一样,这样代码美观,并且方便编程。
什么条件满足之后能够构成方法重载overload?
条件一:在同一个类中
条件二:方法名相同
条件三:参数列表不同(个数、顺序、类型)
在代码级别上,怎么编写构成了方法覆盖呢?
条件一:两个类必须要有继承关系
条件二:重写之后的方法和之前的方法,具有相同的返回类型、方法名相同、参数类型。
条件三、访问权限不能更低、可以更高(这个先记住):
父类的方法权限要小于等于子类的重写之后方法,才可以编译通过。
条件四:重写之后的方法不能比之前的方法抛出更多的异常,可以更少(这个先记住)
注意事项:(学习多态之后再次理解)
注意一:方法覆盖只针对于方法,和属性无关
注意二:私有方法无法覆盖
注意三、构造方法不能被继承,所以构造方法发也不能被覆盖
注意四:方法覆盖只是针对于实例方法,静态方法没有意义。
关于Object类中的to String方法
1、toString方法的作用:将”java“对象转换成”字符串的形式”。大多数的java类toString方法都是需要覆盖的,因为Object类中提供的toString()方法输出的是一个java对象的内存地址。
至于toString()方法怎么进行覆盖?
格式可以自己定义,或者听项目需求。
2、Object,类中的toString()方法的默认实现是什么?

toString:方法名的意思是转换成String
含义:调用一个java对象的toString()方法就可以将java对象转换成字符串的表示
3、那么toString()方法给的默认实现够用吗?(覆盖toString方法)
所以进行了方法覆盖
4、方法重载和方法覆盖有什么区别?
方法重载发生在同一个类中
方法覆盖是发生在具有继承关系的父子类之间
方法重载是在一个类中,方法名相同,参数列表不同
方法覆盖是具有继承关系的父子类,并且重写之后的方法必须和之前的方法一致:具有相同的返回类型、方法名相同、参数类型。
方法覆盖Override的更多相关文章
- 方法的覆盖(override)、重载(overload)和重写(overwrite)
body { background-color: white } .markdown-body { min-width: 200px; max-width: 760px; margin: 0 auto ...
- c#和java中的方法覆盖——virtual、override、new
多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...
- JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?
请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ...
- 继承与多态 动手动脑3方法覆盖(override)”的要点
方法覆盖(override)"的要点 方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)! 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 以下子类 ...
- 方法覆盖(override)”的要点
方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 结论: 在“ ...
- 方法重载(overroad)和方法覆盖(override)------java基础知识总结
a.什么是方法重载?(同一个类中)方法重载是指在同一个类中,出现方法名相同,参数列表不同的情况. b.什么是方法覆盖?(子父类中)方法覆盖是指在子类中,出现和父类一模一样的方法声明的时候,会运行子类的 ...
- C#中隐藏(new)、方法重写(override)、重载(overload)的区别
转自:http://www.cnblogs.com/glife/archive/2009/12/28/1633947.html 重载.重写和隐藏的定义: 重载:public string ToStri ...
- PHP面向对象编程——深入理解方法重载与方法覆盖(多态)
什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...
- PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
这篇文章主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下: 什么是多态? 多态(Polymorphism)按字面的意思就是"多种状态" ...
- Java 方法覆盖和方法重载
方法重载(overloaded),要求方法的名称相同,参数列表不相同. 方法覆盖(override),要求①方法名相同,②参数列表相同,③返回值相同 如果是方法覆盖,要注意以下几种情况: 1.子类方法 ...
随机推荐
- [etcd]简介与安装
简介 etcd是一个采用Raft协议实现强一致性的分布式键值数据库,它提供了一种可靠的方式存储需要被分布式系统或机器集群访问的数据. 常见使用场景:服务注册与发现.键值对存储.消息发布和订阅.分布式锁 ...
- .NET5从零基础到精通:全面掌握.NET5开发技能
C#版本新语法-官网: C#7:https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-7 C#8:https://docs.m ...
- XSS--labs通关记录
XSS--labs通关记录 level 1(无过滤) 查看网页源代码 <!DOCTYPE html><!--STATUS OK--><html> <head& ...
- 论文解读(MCADA)《Multicomponent Adversarial Domain Adaptation: A General Framework》
Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Multicomponent Adversarial Domain Adaptation: A Gener ...
- 三维模型OSGB格式轻量化纹理压缩关键技术分析
三维模型OSGB格式轻量化纹理压缩关键技术分析 在三维模型应用中,纹理是一个十分重要的因素,可以使得模型更加真实.精细.随着移动设备和网络传输速度的限制,纹理数据也需要进行轻量化处理,而OSGB格式纹 ...
- 白话领域驱动设计DDD
容我找个借口先,日常工作太忙,写作略有荒废.一直想聊下领域驱动设计,以下简称DDD,之前也看过一些教程,公司今年两个项目--银行核心和信用卡核心,都深度运用DDD成功落地,有人说DDD挺难理解,在此讲 ...
- 使用flask开发web应用
Flask环境搭建 要开发flash应用,我们需要做一些准备工作 我写了个初始化的脚本 Pip_init.sh来安装初始工作 可以到我的git上去下载该脚本进行初始化安装 要启动flask应用,我们需 ...
- 大企业才用的分布式唯一Id,它比GUID好
支持.Net Core(2.0及以上)与.Net Framework(4.5及以上) 可以部署在Docker, Windows, Linux, Mac. 分布式唯一Id,顾名思义,是指在全世界任何一台 ...
- 关于Unity 如何与Blazor Server结合
关于Unity 如何与Blazor Server结合 一.介绍 最近工作中有`Unity`与`Blazor Server`结合的需求,在网上找了一圈,发现这方面的资料比较少,特此写下这篇记录一下自己的 ...
- 「loj - 3022」「cqoi 2017」老 C 的方块
link. good题,考虑像 国家集训队 - happiness 一样在棋盘上搞染色,我毛张 @shadowice1987 的图给你看啊 你像这样奇数层以 red -> blue -> ...