`

Java覆盖

 
阅读更多

 

方法覆盖是指子类具有重新定义父类成员方法的能力。

 

覆盖方法必须满足多种约束:

方法覆盖的一般限制

1.重新定义的子类方法具有和父类的方法同名称,同参数类型,同参数个数,以及同返回值。

说明:覆盖父类的方法后,可以定义重载方法。

 

2.子类方法不能缩小父类的访问权限。

 

3.子类方法不能抛出比父类更多的异常。

 

4.方法覆盖只能存在于子类和父类(包括直接父类和间接父类)之间。在同一个类中,方法只能被重载不能被覆盖。

 

 

私有方法与覆盖

 

5.父类的私有方法不能被子类覆盖。

说明:

父类的private方法不能继承给子类。即子类中不存在父类的私有方法。

子类可以任意定义与父类private方法同名的方法。重新定义的方法与父类的private方法不存在任何关系。

 

 

 

静态方法与覆盖

6.子类的静态方法可以覆盖父类的静态方法,以便在子类中隐藏父类的静态方法。

子类定义的静态方法的参数签名,返回类型,必须和父类一致。不能缩小父类方法,不能抛出更多的异常。

注意:若父类中有一个静态方法,若子类没有覆盖该方法。则调用该方法可以被子类调用。

即:子类.父类的静态方法();

 

7.父类的静态方法不能被子类覆盖为非静态方法。

 

8.父类的非静态方法不能被子类覆盖为静态方法。

 

 

抽象方法与覆盖

9.父类的抽象方法可以被子类通过两种途径覆盖:

(1)子类实现父类的抽象方法

(2)子类重新声明父类的抽象方法

 

10.父类的非抽象方法可以被覆盖为抽象方法。

 

禁止被子类覆盖

11.不允许覆盖final修饰符的方法。


 

分享到:
评论

相关推荐

    【Java毕业设计】毕业设计——java覆盖工具.zip

    【Java毕业设计——Java覆盖工具】是一个以Java编程语言实现的软件工程实践项目,主要目标是为用户提供一种能够覆盖特定程序代码的工具。在软件开发过程中,代码覆盖是一种常用的测试方法,通过它来评估测试用例对源...

    Java实现热加载完整代码;Java动态加载class;Java覆盖已加载的class;Java自定义classloader

    让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。...Java覆盖已加载的class; Java自定义classloader;

    毕业设计——java覆盖工具.zip

    【Java覆盖工具】是软件测试领域中用于度量代码覆盖率的重要辅助工具,它在毕业设计项目中具有重要的实践意义。代码覆盖率是指程序执行时,源代码被测试用例执行的比例,是评估测试质量的关键指标之一。Java覆盖工具...

    java覆盖率测试工具eclemma

    Java覆盖率测试是软件开发过程中的一个重要环节,它用于衡量代码被测试用例执行的程度,确保了测试的全面性和有效性。EclEmma就是这样一个强大的Java覆盖率工具,它为开发者提供了直观且便捷的集成测试覆盖率报告。...

    Java代码覆盖率工具包Java代码覆盖率工具包

    Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包Java代码覆盖率工具包...

    提供覆盖式和追加式写文件功能的JAVA类

    一个简单的提供覆盖式和追加式写文件功能的JAVA类,可调用其覆盖式方法创建新文件或重置老文件内容,调用其追加式方法在已有文件中增加新内容。

    Java单元测试之代码覆盖率-JaCoCo

    JaCoCo是一款广泛使用的Java代码覆盖率工具,它可以方便地集成到各种构建工具和持续集成系统中,提供详细的覆盖率报告。 JaCoCo通过插入字节码的方式,动态地监控Java程序的执行,记录哪些代码行被测试用例执行过,...

    java成员变量覆盖问题

    ### Java成员变量覆盖问题详解 在Java编程语言中,成员变量是指定义在类中的变量,它们可以在类的方法、构造器或类的其他成员方法中访问和操作。成员变量的覆盖(有时会被误认为是“重写”)是理解Java继承机制的...

    棋盘覆盖 java版本

    在Java编程语言中实现棋盘覆盖,我们需要理解以下几个关键知识点: 1. **棋盘结构**:首先,棋盘可以表示为一个二维数组或矩阵,其大小通常为n×n,其中n是偶数。在Java中,可以使用二维int数组或ArrayList嵌套来...

    EclEmma java单元测试覆盖率

    ### EclEmma Java单元测试覆盖率详解 #### 一、EclEmma简介 EclEmma是一款专为Eclipse设计的强大插件,主要用于Java项目的代码覆盖率分析。通过对Java代码进行覆盖率检查,开发人员可以清晰地了解到哪些代码已经被...

    棋盘覆盖算法(Java)

    棋盘覆盖算法(Java) 算法分析与设计中的内容!!!

    棋盘覆盖Java源码

    在Java编程中实现棋盘覆盖,通常会采用分治策略。分治策略是一种将大问题分解为小问题并分别解决的方法,然后将结果组合得到原问题的解。对于棋盘覆盖,我们可以将大棋盘划分为若干个小棋盘,然后递归地解决这些小...

    JAVA实现棋盘覆盖问题

    ### JAVA 实现棋盘覆盖问题 #### 知识点概览 1. **分治法在算法设计中的应用** 2. **棋盘覆盖问题的概念及其解决策略** 3. **递归算法的理解与实现** 4. **Java编程语言基础:数组、循环、条件语句的应用** #### ...

    Java SE程序 覆盖Object中的方法

    Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖Object中的方法Java SE程序 覆盖...

    java 棋盘覆盖动画演示实现 图形界面 chessboard.zip

    在Java编程语言中,棋盘覆盖动画是一种图形用户界面(GUI)的应用,它通常用于创建交互式的棋类游戏或者是教学工具。在这个项目中,我们看到一个名为"chessboard.zip"的压缩包,里面包含了实现棋盘覆盖动画的源代码...

    java注释规范

    覆盖方法注释是指在 Java 覆盖方法定义处添加的注释,用于描述覆盖方法的基本信息,如方法名称、描述等。其基本格式为: ``` /* * (非 Javadoc) * <p>Title: ${enclosing_method} * <p>Description: * ${tags} ...

    java棋盘覆盖实现演示程序

    Java棋盘覆盖实现演示程序是一种基于分治策略的算法应用,主要目的是用四种不同形态的L型骨牌来覆盖一个特殊棋盘上的所有方格,除了特定的特殊方格外。这个程序展示了如何在编程中解决这类问题,尤其适用于教学和...

    深入学习Java单元测试(Junit+Mock+代码覆盖率)

    深入学习Java单元测试(Junit+Mock+代码覆盖率) Java单元测试是软件测试的一种,旨在验证软件的正确性和可靠性。单元测试是编写测试代码,用来检测特定的、明确的、细颗粒的功能。单元测试并不一定保证程序功能是...

    算法分析JAVA写的棋盘覆盖

    通过理解和分析用JAVA编写的棋盘覆盖程序,我们可以深入理解回溯法、深度优先搜索、广度优先搜索以及动态规划等概念,并提升自己的编程能力。同时,这个过程也能锻炼我们的逻辑思维和问题解决技巧,这些都是在IT行业...

Global site tag (gtag.js) - Google Analytics