java 继承和静态属性或方法

目录

继承

静态属性和方法

继承与静态属性或方法的关系:

示例:

注意:

PS:如有错漏之处,敬请指正


在Java中,继承和静态属性或方法是面向对象编程中的两个重要概念。它们在类设计和使用中扮演着不同的角色。

继承

继承是一种机制,允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。继承可以提高代码的复用性,使得子类可以扩展或修改父类的行为。

静态属性和方法

静态属性或方法是属于类的,而不是属于类的某个特定对象的。这意味着它们可以在没有创建类的对象的情况下被访问。静态方法不能访问非静态属性或方法,因为它们不依赖于类的任何对象实例。

继承与静态属性或方法的关系:

  1. 静态属性的继承:子类可以继承父类的静态属性。然而,由于静态属性属于类本身,子类不能通过继承得到的实例来访问这些属性。子类需要通过类名直接访问父类的静态属性。

  2. 静态方法的继承:子类可以继承父类的静态方法。如果子类提供了一个与父类静态方法签名相同的方法,那么子类的静态方法会隐藏父类的方法。这意味着当你通过子类调用该静态方法时,实际上是调用了子类的方法。

  3. 静态方法的重写:虽然子类可以隐藏父类的静态方法,但在 Java 和 C# 中,静态方法是无法被子类重写的,因为静态方法是与类相关联的,而不是与类的实例相关联的。当在子类中定义一个与父类中的静态方法同名的方法时,实际上是隐藏了父类中的静态方法,而不是重写它。

  4. 静态初始化块:如果子类继承了父类,那么在创建子类对象时,会先执行父类的静态初始化块,然后再执行子类的静态初始化块。

示例:

class Parent {
    public static int staticField = 10;
    public static void staticMethod() {
        System.out.println("Parent's static method");
    }
    static {
        System.out.println("Parent's static initializer block");
    }
}

class Child extends Parent {
    public static int staticField = 20;
    public static void staticMethod() {
        System.out.println("Child's static method");
    }
    static {
        System.out.println("Child's static initializer block");
    }
}

public class Main {
    public static void main(String[] args) {
        // 子类的静态方法隐藏了父类的静态方法
        Child.staticMethod(); // 输出: Child's static method

        // 子类继承了父类的静态属性,但需要通过类名访问
        System.out.println(Parent.staticField); // 输出: 10
        System.out.println(Child.staticField); // 输出: 20

        // 当创建子类对象时,会先执行父类的静态初始化块,再执行子类的
        Child obj = new Child();
        // 输出: Parent's static initializer block
        // 输出: Child's static initializer block
    }
}

在这个示例中,Child类继承了Parent类的静态属性和静态方法。Child类的静态方法隐藏了Parent类的静态方法。静态属性通过类名直接访问,而静态初始化块在创建子类对象时按照继承顺序执行。

注意:

  • 继承和静态属性或方法的使用需要考虑类的设计和使用场景,以确保代码的清晰和可维护性。
  • 静态属性和方法的使用通常与类的整体设计和类之间的关系密切相关,需要谨慎设计以避免潜在的问题,如命名冲突或隐藏父类功能。

PS:如有错漏之处,敬请指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/604921.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【抽样调查】分层抽样上

碎碎念:在大一大二时听课有的时候会发现听不太懂,那时候只觉得是我自己的基础不好的原因,但现在我发现“听不懂”是能够针对性解决的。比如抽样调查这门课,分析过后我发现我听不懂的原因之一是“没有框架”,一大堆知识…

2024年第六届世界软件工程研讨会(WSSE 2024)即将召开!

2024年第六届世界软件工程研讨会(WSSE 2024)将于2024年9月13-15日在日本京都举行。软件工程领域的发展离不开各位专家学者和业界精英的共同努力和贡献。WSSE 2024将就软件工程领域的最新研究成果、实践经验和发展趋势进行深入交流和探讨,汇聚…

Ubuntu将软件图标添加到应用列表

一.简介snap snap和yum,apt一样都是安装包工具,但是snap里的软件源是自动更新到最新版本,最好用 比如Ubuntu的软件商城就是使用的snap软件包 二. Ubuntu软件商城更新 1.ps -ef | grep snap-store 查询并kill snap-store的所有进程 2.sudo …

【Linux进程间通信(六)】深入理解 System V IPC

(一)引入 (二)IPC 命名空间 (三)ipc_ips结构体 (四)ipc_id_ary结构体 (五)kern_ipc_perm结构体 (六)操作系统对IPC资源是如何管理…

县供电公司员工向媒体投稿发文章用亲身经历告诉你并不难

在县供电公司的日子里,我肩负着一项至关重要的使命——信息宣传工作。这不仅仅是一份职责,更是连接公司与外界的桥梁,通过新闻稿件传递我们的声音,展示我们的成果。然而,回忆起刚刚踏入这个领域的时光,那段经历至今让我感慨万千。 初涉投稿,步履维艰 刚接手这项工作时,我的投稿…

探索DeepSeek平台:新一代MoE模型的深度体验

简介 DeepSeek是一个创新的人工智能平台,它最近推出了其最新版本的模型——DeepSeek-V2 MoE(Mixture of Experts)。这个平台不仅提供了一个交互式的聊天界面,还提供了API接口,让用户可以更深入地体验和利用这一先进的…

全体模型师请做好日入过万的准备!3D模型库海量资源,老子云平台免费用

在数字化的大背景下,3D转型已然成为了多行业关注的重点战略版块。无论是科技、金融、互联网、化工、建筑等等各个行业都在加速布局,3D手段会成为下一个重要的技术风口。也正因如此,3D市场潜能巨大,并且3D需求每年都在暴涨&#xf…

3d中如何对模型粉碎处理?---模大狮模型网

在3D建模和动画设计中,模型粉碎处理是一种引人注目的效果,可以为场景增添动态和震撼的视觉效果。无论是用于电影特效、游戏设计还是虚拟现实项目,都可以通过模型粉碎处理来创造出引人入胜的场景。本文将介绍如何在3D中轻松实现模型粉碎处理&a…

本地连接服务器Jupyter【简略版】

首先需要在你的服务器激活conda虚拟环境: 进入虚拟环境后使用conda install jupyter命令安装jupyter: 安装成功后先不要着急打开,因为需要设置密码,使用jupyter notebook password命令输入自己进入jupyter的密码: …

Windows端之Python3.9及以上高版本工程打包得到的exe逆向工程解包得到pyc文件进而得到py文件的流程实现

参考来自 【python逆向 pyc反编译】python逆向全版本通杀_python反编译pyc-CSDN博客https://blog.csdn.net/zjjcxy_long/article/details/127346296Pyinstaller打包的exe之一键反编译py脚本与防反编译_pyinstaller防止反编译-CSDN博客https://blog.csdn.net/as604049322/artic…

「网络流 24 题」魔术球 【最小路径覆盖】

「网络流 24 题」魔术球 注意这里的球是依次放置&#xff0c;也就是说如果当前放到第 i i i 号球&#xff0c;那么 1 → i − 1 1 \rarr i - 1 1→i−1 号球都已经放好了&#xff0c;否则可以放无数个球 思路 首先我们对于 i < j 且 i j 完全平方数 i < j 且 i j…

在思科和华为上实现两个主机A,B A能ping通B,B不能ping通A

1.华为实验的topo如下 常规状态下任意两台主机都是可以ping通的 此时的需求是PC4能ping通PC2和PC3但是PC2和PC3不能ping通PC4 这里需要用到ACL策略 在接口上调用 验证&#xff1a; PC4能ping通PC2和PC3 PC2和PC3不能ping通PC4 2.思科类似 正常情况下是都能互相ping通 加上ac…

嵌入式Linux的QT项目CMake工程模板分享及使用指南

在嵌入式linux开发板上跑QT应用&#xff0c;不同于PC上的开发过程。最大的区别就是需要交叉编译&#xff0c;才能在板子上运行。 这里总结下嵌入式linux环境下使用CMake&#xff0c;嵌入式QT的CMake工程模板配置及如何使用&#xff0c;分享给有需要的小伙伴&#xff0c;有用到的…

Github的使用教程(下载和上传项目)

根据『教程』一看就懂&#xff01;Github基础教程_哔哩哔哩_bilibili 整理。 1.项目下载 1&#xff09;直接登录到源码链接页或者通过如下图的搜索 通过编程语言对搜索结果进一步筛选。 2&#xff09;红框区为项目的源代码&#xff0c;README.md &#xff08;markdown格式&…

企业如何用数字化为预提摊销业务赋能?

对于企业来说&#xff0c;想要实现系统化、智能化、自动化的预提摊销管理&#xff0c;需要做足哪些功课&#xff1f;常见场景下的业务难题又该如何破解&#xff1f;今天胜意科技就给大家介绍一下&#xff0c;企业如何通过数字化手段搞定预提摊销业务难题。 一、预提摊销痛点 在…

Spring后端参数校验——自定义校验方式(validation)

文章目录 开发场景技术名词解释——Spring Validation自定义校验 技术细节小结1.实体参数校验2.自定义校验 完整代码 开发场景 业务场景&#xff1a;新增文章 基本信息 请求路径&#xff1a;/article 请求方式&#xff1a;POST 接口描述&#xff1a;该接口用于新增文章(发布文…

小样本学习

小样本学习的概念最早从计算机视觉(computer vision)[8]领域兴起, 近几年受到广泛关注, 在图像分类任务中已有很多性能优异的算法模型[9-11].但是在自然语言处理领域(natural language processing)[12]的发展较为缓慢, 原因在于图像和语言特性不同.图像相比文本更为客观, 所以当…

学习方法的重要性

原贴&#xff1a;https://www.cnblogs.com/feily/p/13999204.html 原贴&#xff1a;https://36kr.com/p/1236733055209095 1、 “一万小时定律”的正确和误区 正确&#xff1a; 天才和大师的非凡&#xff0c;不是真的天资超人一等&#xff0c;而是付出了持续不断的努力&…

C++:菱形继承与菱形虚拟继承

一、菱形继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承 多继承&#xff1a;一个子类有两个或以上直接父类时称这个继承关系为多继承 菱形继承&#xff1a;菱形继承是多继承的一种特殊情况&#xff0c;派生类继承自两个间接基类&#xff0c;而这…

MVC与MVVM架构模式

1、MVC MVC&#xff1a;Model-View-Controller&#xff0c;即模型-视图-控制器 MVC模式是一种非常经典的软件架构模式。从设计模式的角度来看&#xff0c;MVC模式是一种复合模式&#xff0c;它将多个设计模式结合在一种解决方案中&#xff0c;从而可以解决许多设计问题。 MV…
最新文章