继承-被透明化的认知

简介: 前段时间和领导交流,被问到: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年就足够卓越了?)

相关文章
|
3月前
|
Java 开发者
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
在Java面向对象编程的广阔海洋中,多态犹如一股深邃的潜流,它推动着代码从单一走向多元,从僵化迈向灵活。
42 7
|
1月前
|
数据采集 监控 数据可视化
数据治理成功的九大细节,你都忽略了哪几个?
数字化时代,数据作为新的生产要素受到了各界前所未有的重视。
|
3月前
|
Cloud Native 领域建模 API
核心系统转型问题之建模平台在业务领域建模中的功能如何解决
核心系统转型问题之建模平台在业务领域建模中的功能如何解决
|
4月前
软件复用问题之在思考复用问题时,将目光从软件聚焦到人要如何解决
软件复用问题之在思考复用问题时,将目光从软件聚焦到人要如何解决
|
6月前
|
JavaScript 前端开发 程序员
掌握构造函数:打破面向对象编程难题(二)
掌握构造函数:打破面向对象编程难题
|
6月前
|
JavaScript 前端开发
掌握构造函数:打破面向对象编程难题(一)
掌握构造函数:打破面向对象编程难题
|
供应链 数据可视化 BI
【企业架构】描绘未来第 2 部分:定义能力路线图
【企业架构】描绘未来第 2 部分:定义能力路线图
|
缓存 算法 NoSQL
公司对不同职级能力抽象要求的具体化
要先把当前级别要求的能力提升到精通,然后尝试做下一级别的事情。
359 0
|
搜索推荐 安全 数据安全/隐私保护
产品设计方法与原则
产品设计方法与原则
277 0
产品设计方法与原则
|
安全 小程序 搜索推荐
19类公认的完整获客方法,你会几种?
我把公认的19类获客方法完整地罗列出来,每个人都可以对比一下,看看自己会用几种。
19类公认的完整获客方法,你会几种?
下一篇
无影云桌面