继承作用:

基本作用:代码复用

重要作用:方法覆盖和多态机制

=============================================================================

什么时候需要方法覆盖(理解)

怎么进行方法覆盖(掌握)

方法覆盖的条件及注意事项(掌握)

===============================================================================

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的更多相关文章

  1. 方法的覆盖(override)、重载(overload)和重写(overwrite)

    body { background-color: white } .markdown-body { min-width: 200px; max-width: 760px; margin: 0 auto ...

  2. c#和java中的方法覆盖——virtual、override、new

    多态和覆盖 多态是面向对象编程中最为重要的概念之一,而覆盖又是体现多态最重要的方面.对于像c#和java这样的面向对象编程的语言来说,实现了在编译时只检查接口是否具备,而不需关心最终的实现,即最终的实 ...

  3. JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?

    请说明"static"关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? "static"关键字表明一个成 ...

  4. 继承与多态 动手动脑3方法覆盖(override)”的要点

    方法覆盖(override)"的要点 方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)! 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 以下子类 ...

  5. 方法覆盖(override)”的要点

    方法覆盖要求子类与父类的方法一模一样,否则就是方法重载(overload)!请自行编写代码测试以下特性:在子类中,若要调用父类中被覆盖的方法,可以使用super关键字. 结论:          在“ ...

  6. 方法重载(overroad)和方法覆盖(override)------java基础知识总结

    a.什么是方法重载?(同一个类中)方法重载是指在同一个类中,出现方法名相同,参数列表不同的情况. b.什么是方法覆盖?(子父类中)方法覆盖是指在子类中,出现和父类一模一样的方法声明的时候,会运行子类的 ...

  7. C#中隐藏(new)、方法重写(override)、重载(overload)的区别

    转自:http://www.cnblogs.com/glife/archive/2009/12/28/1633947.html 重载.重写和隐藏的定义: 重载:public string ToStri ...

  8. PHP面向对象编程——深入理解方法重载与方法覆盖(多态)

    什么是多态? 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对 ...

  9. PHP面向对象编程之深入理解方法重载与方法覆盖(多态)

    这篇文章主要介绍了PHP面向对象编程之深入理解方法重载与方法覆盖(多态)的相关资料,需要的朋友可以参考下: 什么是多态? 多态(Polymorphism)按字面的意思就是"多种状态" ...

  10. Java 方法覆盖和方法重载

    方法重载(overloaded),要求方法的名称相同,参数列表不相同. 方法覆盖(override),要求①方法名相同,②参数列表相同,③返回值相同 如果是方法覆盖,要注意以下几种情况: 1.子类方法 ...

随机推荐

  1. SQL-去除最大值与最小值求均值的问题

    背景 今天有同事问我一道关于数据库SQL的面试题,我刚开始随便给了一个思路,后来思索发现这个思路有漏洞,于是总结下来,仅供参考. 问题: 薪水表中是员工薪水的基本信息,包括雇员编号,和薪水,查询除去最 ...

  2. chrome浏览器插件react devtools、redux devtools,无需安装、解压即可用

    react devtools用于调试react代码,可以查看到props.state的值,以及定义的hooks,而redux devtools可以追踪到action的派发.store的变化,两个都是r ...

  3. Robot 框架学习笔记

    Robot 框架学习笔记 为了更好地让读者理解快速学习新框架的思路,笔者接下来会继续介绍另一个名为 Robot 的自动化测试框架,希望读者能参考笔者从零开始讲解一个开发/测试框架的流程,从中总结出适合 ...

  4. HarmonyOS扫码服务,应用服务一扫直达打造系统级流量新入口

    二维码如今是移动应用流量入口以及功能实现的重要工具,也是各App的流量入口,是物.人.服务的连接器,通过扫码我们可以更便捷的生活,更高效的进行信息交互,包括信息的发布.信息的获取. 在日常扫码过程中, ...

  5. Go 语言内置类型全解析:从布尔到字符串的全维度探究

    关注微信公众号[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证 ...

  6. 如何使用Vite创建Vue3的uniapp项目

    项目结构 my-vue3-project ├─ .env //默认环境变量 ├─ .env.development //开发环境变量 ├─ .eslintrc-auto-import.json //( ...

  7. 月工资不到10元的内容审核专员? - ChatGPT 在内容自动审查中的应用

    内容过滤筛查是指对网络上发布或传播的文本.图片.视频等内容进行审核和监管,以防止出现违法违规.暴力色情.虚假广告.电信诈骗等现象,维护网络安全和社会秩序. 内容过滤筛查是一个亟待解决的问题,因为网络内 ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (96)-- 算法导论9.3 1题

    一.用go语言,在算法 SELECT 中,输人元素被分为每组 5 个元素.如果它们被分为每组 7个元素,该算法仍然会是线性时间吗?证明:如果分成每组 3 个元素,SELECT 的运行时间不是线性的. ...

  9. Vue路由新开页面跳转和传参传递

    需求:在后台管理系统首页列表项中,点击详情跳转到系统中指定菜单的路由要求新开窗口并需要带上参数查询. 第一种方法: 1 const { id } = item; 2 let routeUrl = th ...

  10. 理解并掌握C#的Channel:从使用案例到源码解读(一)

    引言 在C#的并发编程中,Channel是一种非常强大的数据结构,用于在生产者和消费者之间进行通信.本文将首先通过一个实际的使用案例,介绍如何在C#中使用Channel,然后深入到Channel的源码 ...