1、多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作 2、多态存在的三个必要条件 继承 重写 父类引用指向子类对象 比如: 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。 3、虚方法 我 ...
分类:
编程语言 时间:
2018-08-27 22:33:48
阅读次数:
190
一,c#中的值类型和引用类型 众所周知在c#中有两种基本类型,它们分别是值类型和引用类型;而每种类型都可以细分为如下类型: 什么是值类型: 进一步研究文档,你会发现所有的结构都是抽象类型System.ValueType的直接派生类,而System.ValueType本身又是直接从System.Obj ...
1、为什么要用arraylist: 2、虚方法和重写方法 3、让方法不可重写 4、外部方法 引入命名空间快捷键: ctrl + alt +F10 5、方法的重载 举例: 、 6、析构函数,释放资源 7、泛型与ArrayList的区别与关系 ArrayList还是数组没错,他和上两个泛型集合的区别在于 ...
先上代码 输出如下 首先需要明白多态的定义: 1、使用父类类型的引用指向子类的对象; 2、如果子类重写了父类的虚方法,那么调用这个方法的时候,将会先调用子类的方法--动态调用/动态连接; 3、父类引用指向子类对象 也称之为“上溯造型”,父类的方法称之为“虚方法”,需要注意的是:方法是调用子类自己的( ...
分类:
其他好文 时间:
2018-07-30 16:40:20
阅读次数:
169
本文主要总结虚拟机调用方法的过程是怎样的,JAVA虚拟机里面提供了5条方法调用的字节码指令。分别如下: invokestatic:调用静态方法 invokespecial:调用实例构造器<init>方法、私有方法和父类方法。 invokevirtual:调用所有的虚方法。 invokeinterfa ...
分类:
其他好文 时间:
2018-07-29 15:18:45
阅读次数:
203
回顾一下前文,知道了属性表的Code属性存着Java程序方法体的代码经过Javac编译器处理后,最终变为字节码指令。还知道了Code属性表中的code是一个u1类型的单字节,取值范围是0x00~0xFF,也就是一共最多能表达256条指令。 由于Java虚拟机采用面向操作数栈而并非寄存器的架构,所以大 ...
分类:
其他好文 时间:
2018-07-29 15:14:17
阅读次数:
176
微软官方文档:https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/abstract-and-sealed-classes-and-class-members 抽象类和类成员 通过在类 ...
分类:
其他好文 时间:
2018-07-25 10:20:13
阅读次数:
259
Public:公开权限 Private:修饰类时类为程序集或者包含此类的类内部权限;修饰变量时只能类内部使用; Protected:修饰变量,只能继承类可以使用,对外(包括继承类的实例)无权限; Abstract:定义类时此类不能实例化,只能被继承,如果类内部有抽象方法,则此类只能时抽象类,而且其继 ...
接上面讲 我们知道虚方法,和重写方法。 但是有没有发现 override和new的作用是差不多的。 但为什么还要单独写出来两个呢? 首先,咱们要明白一个问题,继承是具有线性传播的。 代码中,Son具有Father的方法,属性。换句话 Son使用的Father的方法。在Son的这个继承链上,使用new ...
早期(编译期)优化 java语言编译期 1.前端编译器(编译器的前端):*.java文件 => .class文件 Sun的Javac,Eclipse_JDT中的增量式编译器(ECJ) 2.后端运行期编译器(JIT编译器):字节码转 => 机器码 HotSpot_VM的C1、C2编译器 3.静态提前编 ...
分类:
其他好文 时间:
2018-06-14 20:39:43
阅读次数:
231