手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java多态原理及内存分析

时间:2024-10-31 03:29:12

1、单说概念的其实很难理解,我们结合程序来就比较烂衣茫庥好理解了。要实现多态就一定要满足三个条件。首先要有继承,其次是方法的重写,最后是父类引用只想子类对象。这里我举一个最常用的事例“animal”类。把“animal”作为什么“狗”,“猫” “老虎”......的父类,因为它们都是动物。并且这里定义父类里面的方法为“叫”,因为所有的动物基本上都会叫(天生有问题的除外)。

2、首先要有继承。

java多态原理及内存分析

3、为了实现多态三个条件第一个继承已经有了。第二个就是重写方法。我们定义的原来的方法是:public 即枢潋雳void yell() { System.out.println("一般的叫声"); }重写过之后的是:public void yell() { System.out.println("狗的叫声"); }

java多态原理及内存分析

4、然后我们建立一个test类。写个测试方法测试动物叫声。”

java多态原理及内存分析

5、编译时类型由声明时类型决定 这里声明一个“animal”, “c”是animal类型,编译器只认这个“animal” 然后找到“yell”方法。而运行类型时有实际类型值决定。

6、这里“Animal dog = new Dog();”就用到了“父类引用指向子类”。“dog”继承了“Animal”拥有“animal”的属相和方法。

java多态原理及内存分析

7、然后根据内存图来分析。首先“栈”里有我们的“dog”“堆”里面有我们的加载的代码之类的东西。这些之前都有过介绍,不会的可以去看下我之前写过的或者百度搜索下。

java多态原理及内存分析

8、因为有继承关系,所以“dog”的“super”属性指向它继承的“animal”,而“object”是所有的父类,所以“animal”的“super”指向“object”。(每个构造器里面都含有隐式的“this”,“super”,其中“this”指向本地)。

9、然后调用“test”测试类。输出语句。

java多态原理及内存分析

10、这样就完成了一个简单的多态例子。当然也可以添加其他的方法来使程序更加丰富。

© 手抄报圈