iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何解析Java的方法覆盖与变量覆盖
  • 857
分享到

如何解析Java的方法覆盖与变量覆盖

2023-06-17 11:06:02 857人浏览 薄情痞子
摘要

这篇文章给大家介绍如何解析Java的方法覆盖与变量覆盖,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,我们看看关于重载,和覆盖(重写)的简明定义:方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方

这篇文章给大家介绍如何解析Java的方法覆盖与变量覆盖,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

首先,我们看看关于重载,和覆盖(重写)的简明定义:

方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。

方法覆盖:如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么可以说,子类的方法覆盖了父类的方法

我们重点说说覆盖问题,以如下代码为例:

public class People {      public String getName() {          return "people";      }   }  public class Student extends People {            public String getName() {          return "student";      }        }  public static void main(String[] args) {    People p=new People();    System.out.println(p.getName());//运行结果为people        Student s=new Student();    System.out.println(s.getName());//运行结果为student        People pp=new Student();    System.out.println(pp.getName());//运行结果为student       }

上述结果说明:student类的getName方法成功覆盖了父类的方法

我们再来看看变量的覆盖:

public class People {      protected String name="people";         }  public class Student extends People {            protected String name="student";            }  public static void main(String[] args) {                                      People p=new People();          System.out.println(p.name);//运行结果为people                    Student s=new Student();          System.out.println(s.name);//运行结果为student                    People pp=new Student();          System.out.println(pp.name);//运行结果为people       }

通过运行结果我发现:变量的覆盖实际上与方法的不尽相同。

用我自己的话说:变量的覆盖最多只能算是半吊子的覆盖。

要不然,向上转换与不会发生数据丢失现象

People pp=new Student();  System.out.println(pp.name);//运行结果为people

就我个人的经验来说:变量的覆盖很容易让人犯错误.让人感觉又回到了C++的继承[这里不是指c++带virtual的继承]

***我们再来看一段代码:

public class People {      protected String name="people";      public String getName() {          return name;      }  }  public class Student extends People {            protected String name="student";      public String getName() {          return name;      }  }
main(String[] args) {                    People p=new People();          System.out.println(p.getName());//运行结果为people                    Student s=new Student();          System.out.println(s.getName());//运行结果为student                    People pp=new Student();          System.out.println(pp.getName());//运行结果为student       }

显然,如此的覆盖,才是对我们更有用的覆盖,因为这样才能达到:把具体对象抽象为一般对象的目的,实同多态性。

关于如何解析Java的方法覆盖与变量覆盖就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 如何解析Java的方法覆盖与变量覆盖

本文链接: https://www.lsjlt.com/news/288406.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何解析Java的方法覆盖与变量覆盖
    这篇文章给大家介绍如何解析Java的方法覆盖与变量覆盖,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,我们看看关于重载,和覆盖(重写)的简明定义:方法重载:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方...
    99+
    2023-06-17
  • PHP中的变量覆盖漏洞深入解析
    目录1.extract()变量覆盖2.PHP动态变量覆盖3.parse_str()变量覆盖4.import_request_variables()变量覆盖5.PHP全局变量覆盖1.e...
    99+
    2024-04-02
  • PHP中变量覆盖漏洞的案例分析
    这篇文章主要介绍了PHP中变量覆盖漏洞的案例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.extract()变量覆盖1.extract()extract() 函数从数...
    99+
    2023-06-14
  • 如何理解C++Test的覆盖性
    这篇文章将为大家详细讲解有关如何理解C++Test的覆盖性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。对接触到C++Test测试的用户和学者来说,充分了解C++Test的工作原理是很重要的...
    99+
    2023-06-17
  • java子类覆盖父类的方法是什么
    Java中子类覆盖父类的方法是通过在子类中定义一个与父类相同签名的方法来实现的。在子类中可以重新实现父类的方法,也可以添加额外的功能...
    99+
    2023-10-08
    java
  • java如何将旧文件内容覆盖
    在Java中,可以使用`FileWriter`类来覆盖旧文件内容。首先需要创建一个`FileWriter`对象,并将要写入的文件名作...
    99+
    2023-09-25
    java
  • MySQL 的覆盖索引与回表的使用方法
    两大类索引 使用的存储引擎:MySQL5.7 InnoDB 聚簇索引 * 如果表设置了主键,则主键就是聚簇索引 * 如果表没有主键,则会默认第一个NOT NULL,且唯一(UNIQUE)的列作为聚...
    99+
    2024-04-02
  • 如何使用golang的excelize覆盖excel
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何使用golang的excelize覆盖excel》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在...
    99+
    2024-04-05
  • php数组合并不覆盖的方法
    这篇文章给大家分享的是有关php数组合并不覆盖的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php数组合并不覆盖的方法:首先创建一个PHP示例文件;然后通过“array_merge($arr1, $arr2...
    99+
    2023-06-15
  • php中的方法覆盖怎么使用
    这篇文章主要介绍“php中的方法覆盖怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中的方法覆盖怎么使用”文章能帮助大家解决问题。方法覆盖是什么?在面向对象编程中,方法覆盖指的是在子类中...
    99+
    2023-07-05
  • 如何解疑C++多态覆盖问题
    这篇文章给大家介绍如何解疑C++多态覆盖问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++编程语言中的多态性是一个比较重要的概念,在实际应用中有许多比较重要的细节问题值得我们去关注。在这里就先来了解一下C++多态...
    99+
    2023-06-17
  • thinkphp5.0.X全版本变量覆盖导致RCE的示例分析
    小编给大家分享一下thinkphp5.0.X全版本变量覆盖导致RCE的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!简介总是碰到一些thinkphp5.0.X的站点,网上搜索漏洞利用payload会有好几种,变量覆...
    99+
    2023-06-14
  • 讨论Golang中方法覆盖的使用方法
    在 Golang 中,方法覆盖是一种实现多态性的重要方式。在本文中,我们将讨论 Golang 中的方法覆盖以及如何正确使用它。在 Golang 中,每个方法都属于一个类型。如果一个类型定义了一个与另一个类型相同的方法,那么这个方法就可以被称...
    99+
    2023-05-14
  • vue如何覆盖子组件的样式
    这篇文章主要介绍vue如何覆盖子组件的样式,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!覆盖子组件的样式——正确的方法Scoped CSS 比较容易保持整洁,并且不会意外地将样式渗入应用程序的其他部分。但有...
    99+
    2023-06-27
  • CentOS下cp直接覆盖命令的方法
    本篇内容介绍了“CentOS下cp直接覆盖命令的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!cp覆盖时,无论加什么参数-f之类的还是提...
    99+
    2023-06-10
  • 如何分析专业景区无线AP覆盖方案
    本篇文章为大家展示了如何分析专业景区无线AP覆盖方案,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。        如今,风景名胜区越来越多,生活水平不断提高。...
    99+
    2023-06-04
  • matlab如何找回被覆盖的数据
    在Matlab中,如果您覆盖了变量的数据,可以使用以下方法找回被覆盖的数据:1. 使用命令窗口的"ans"变量:Matlab会将结果...
    99+
    2023-09-15
    matlab
  • 如何使用redis不覆盖前的值
    要使用Redis不覆盖前的值,可以使用Redis的命令`SETNX`和`GETSET`。1. 使用`SETNX`命令设置键值对,只有...
    99+
    2023-09-11
    redis
  • golang函数的测试与覆盖率如何进行?
    在 go 中,测试和覆盖率对于维护稳定和可靠的代码至关重要。测试通过编写以 test 开头的函数进行,其中包含断言来验证函数的预期输出。运行测试时使用 go test 命令,而测量覆盖率...
    99+
    2024-04-27
    测试 覆盖率 golang
  • unity场景被覆盖掉了如何解决
    如果Unity场景被覆盖掉了,可以尝试以下解决方法:1. 恢复备份:如果你有之前保存的备份文件,可以尝试将备份文件恢复到Unity项...
    99+
    2023-09-29
    unity
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作