如何在Windows 10控制您的鼠标滚动速度,这篇经验可以帮助你改变你的Widow10计算机上的鼠标设置,以增加你的鼠标滚动速度为您节省时间和手指的疲劳。具体方法如下:......
java多态原理及内存分析
Java有三大特性分别是“封装”,“继承”,“多态”。我们学习过java都知道“继承”和“封装”相对于比较好理解,多写几个例子就能够明白了,那么什么是多态呢? 用现实生活中的例子来说就是:“说的一套,做的一套”。用术语是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。
工具/原料
- 电脑
- 构造器的基础
方法/步骤
单说概念的其实很难理解,我们结合程序来就比较好理解了。要实现多态就一定要满足三个条件。首先要有继承,其次是方法的重写,最后是父类引用只想子类对象。这里我举一个最常用的事例“animal”类。把“animal”作为什么“狗”,“猫” “老虎”......的父类,因为它们都是动物。并且这里定义父类里面的方法为“叫”,因为所有的动物基本上都会叫(天生有问题的除外)。
首先要有继承。
为了实现多态三个条件第一个继承已经有了。第二个就是重写方法。
我们定义的原来的方法是:
public void yell() {
System.out.println("一般的叫声");
}
重写过之后的是:
public void yell() {
System.out.println("狗的叫声");
}
然后我们建立一个test类。写个测试方法测试动物叫声。”
编译时类型由声明时类型决定 这里声明一个“animal”, “c”是animal类型,编译器只认这个“animal” 然后找到“yell”方法。而运行类型时有实际类型值决定。
这里“Animal dog = new Dog();”就用到了“父类引用指向子类”。“dog”继承了“Animal”拥有“animal”的属相和方法。
然后根据内存图来分析。首先“栈”里有我们的“dog”“堆”里面有我们的加载的代码之类的东西。这些之前都有过介绍,不会的可以去看下我之前写过的或者百度搜索下。
因为有继承关系,所以“dog”的“super”属性指向它继承的“animal”,而“object”是所有的父类,所以“animal”的“super”指向“object”。(每个构造器里面都含有隐式的“this”,“super”,其中“this”指向本地)。
然后调用“test”测试类。输出语句。
这样就完成了一个简单的多态例子。当然也可以添加其他的方法来使程序更加丰富。
注意事项
- 注意基本的三项
- 了解构造器
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章