继承-被透明化的认知

简介: 前段时间和领导交流,被问到:java中什么是继承?继承在编译过程的代码体现是什么?继承在运行时的代码体现是什么?

一、背景介绍


前段时间和领导交流,被问到:java中什么是继承?继承在编译过程的代码体现是什么?继承在运行时的代码体现是什么?


我的回答:??? 此处留下一些想象的空间。


二、思路&方案


1.放下自己曾经对于java继承的认识,结合问题,查阅资料了解java继承

2.通过简单的damo实现,来理解继承

3.通过idea中的工具查看.java文件编译为.class文件后的子类的结果

4.通过查看.class文件的工具进程查看子类

5.通过只实例化子类,查看是否可以通过子类使用父类的方法


三、过程


1.查询结果

子类拥有父类非 private 的属性、方法。

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

子类可以用自己的方式实现父类的方法。


2.同下面5的例子


3.查看结果(子类中没有显示父类中的公有方法)


14f8febe96c04fb69f94cb6bb1c83f70.png

86896e33c5714c34866e5d69a4ed306c.png

ed3ce76fb2ee4009ad4a522d16eccf1e.png


4.查看结果(子类中没有显示父类中的公有方法)


bf620cf1805b4e158683411a7f5d9419.png


5.子类是可以直接实例化后使用父类的方法的,证明继承之后编译为.class文件,将父类的公有方法复制到了父类一份


package com.b0027继承;
public class Animal {
    private String name;
    public void jiao(){
        System.out.println("动物叫");
    }
}


package com.b0027继承;
import com.b0016MVC.mvc消息传递.A;
public class Pig extends Animal {
    private void move(){
        System.out.println("动物移动");
    }
}


package com.b0027继承;
public class Client {
    public static void main(String[] args) {
//        Animal pig = new Pig();
//        pig.jiao();
        //这里就说明了,子类在进行编译的时候,直接将父类的属性和方法拿到了子类一份,
        //之后,子类就可以直接点出来父类的方法使用了
        Pig pig1 = new Pig();
        pig1.jiao();
    }
}


四、总结


1.对于提出的问题要去思考和落地实现

2.不能被idea工具和查看.class工具呈现的表象迷惑(这两个工具呈现的表象小编认为是为了和.java文件中的内容保持一致)

3.得出结论:继承是将父类非private修饰的属性和方法都复制到了子类一份

五、升华


1.拥有提出这样问题的习惯和思路非常重要

2.就好比我们熟知的空气一样,习惯了有空气的存在从而就将空气是人的必需品给透明化了

3.透明化习惯的摆脱可以利用刻意练习来规避打破(奉上刻意练习的地址:为什么有人工作10年仍不是专家,有人2年就足够卓越了?)

相关文章
|
SQL 安全 测试技术
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
1081 0
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
|
算法 开发工具 计算机视觉
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
【零代码研发】OpenCV实验大师工作流引擎C++ SDK演示
306 1
WK
|
机器学习/深度学习 算法 大数据
鱼群算法
鱼群算法(FSA)是一种基于仿生学的群智能算法,模拟鱼群在水中集群、觅食和逃避捕食的行为,寻找问题空间中的全局最优解。该算法由李晓磊等人于2002年提出,通过初始化鱼群、评估适应度、更新行为和终止条件等步骤进行迭代优化。其优点包括实现简单、全局搜索能力强和自适应性好,但收敛速度较慢且易陷入局部最优。FSA已广泛应用于函数优化、路径规划、图像分割等领域,并有望通过改进性能、结合其他算法及拓展应用领域等方式进一步提升其应用价值。
WK
366 0
|
人工智能 机器人 数据库
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
字节推出「Coze扣子」AI Bot 开发平台,无需编程,让 Chatbot 搭建更快捷、低门槛!
810 0
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
630 0
|
SQL 监控 关系型数据库
解密SQL性能异常事件及阿里云数据库的性能调优实践
作为开发者想必都知道数据库是现代应用的核心组件之一,而且在当今互联网时代之下,SQL查询的性能直接影响系统的整体性能,它的性能对于系统的稳定性和响应速度至关重要。那么本文就来讨论一下SQL性能异常的排查和优化方法,包括我个人印象深刻的SQL性能异常事件,以及分享一下使用阿里云数据库产品/工具进行SQL性能调优的经验和心得体会。
408 1
解密SQL性能异常事件及阿里云数据库的性能调优实践
|
安全 开发者 Python
CSRF防护在Flask中的实现
【4月更文挑战第16天】本文介绍了如何在Flask中防范CSRF攻击。CSRF是一种利用用户身份执行恶意操作的攻击方式。要防御CSRF,可使用Flask-WTF扩展,它集成CSRF保护。首先安装Flask-WTF,设置SECRET_KEY,然后让表单继承自`FlaskForm`,自动应用CSRF保护。在模板中渲染表单时,包含`hidden_tag()`以渲染CSRF令牌。处理CSRF异常,添加错误处理函数。此外,使用HTTPS,限制请求来源,及时更新依赖也是重要措施。遵循这些步骤可提升Flask应用的安全性。
|
存储 弹性计算 测试技术
阿里云E实例评测:为个人开发者、学生和小微企业打造的经济高效解决方案
阿里云E实例是面向个人开发者、学生和小微企业的入门级云服务器,具备优秀的性能、价格优势和良好的用户体验。E实例采用高性能处理器,支持多种内存配比,满足各种应用需求。与其他同类产品相比,E实例的价格更具有竞争力,还提供多种优惠活动和免费试用,降低用户成本。此外,E实例的用户体验良好,官方文档和帮助中心提供完善的资料和教程,控制台界面简洁明了。总的来说,阿里云E实例是一款经济高效的云服务器解决方案,适合个人开发者、学生和小微企业使用。
|
存储 缓存 自然语言处理
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了
717 0
【JAVA期末复习资源】包含重点知识、踩坑知识,期末复习看这一份就够了