这是一个测试文件
来源:互联网 发布:湖北省历年债务数据 编辑:程序博客网 时间:2024/06/04 18:46
正如你所看到的那样,上面这段代码非常简单,有两个类Animal和Cat,Animal类中定义了run和getName两个方法,Cat继承自Animal,并重写了父类的run方法。在main方法中,首先定义了一个Animal类型的变量cat,并指向了Cat类的实例对象,然后调用了它的run方法。在执行new Cat(“汤姆”)这段代码时,会先为Cat类分配内存空间(所分配的内存空间大小由Cat类的成员变量数量决定),然后调用Cat的带参构造方法初始化对象。 cat是Animal类型,但它指向的是Cat实例对象的引用,而且Cat重写了父类的run方法,因为调用run方法时有多态存在,所以访问的是Cat的run而非Animal的run,运行后打印的结果为:汤姆 Cat.run…
如果要调用父类的run方法,只需在Cat的run方法中调用super.run()即可,相当的简单。
写过C或C++的同学应该都有一个很深刻的内存管理概念,栈空间和堆空间,栈空间的内存大小受操作系统限制,由操作系统自动来管理,速度较快,所以在函数中定义的局部变量、函数形参变量都存储在栈空间。操作系统没有限制堆空间的内存大小,只受物理内存的限制,内存需要程序员自己管理。在C语言中用malloc关键字动态分配的内存和在C++中用new创建的对象所分配内存都存储在堆空间,内存使用完之后分别用free或delete/delete[]释放。这里不过多的讨论C/C++内存管理方面的知识,有兴趣的同学请自行百度。做Java的童鞋众所周知,写Java程序是不需要手动来管理内存的,内存管理那些烦锁的事情全都交由一个叫GC的线程来管理(当一个对象没有被其它对象所引用时,该对象就会被GC释放)。但我觉得Java内部的内存管理原理和C/C++是非常相似的,上例中,Animal cat = new Cat(“汤姆”); 局部变量cat存放在栈空间上,new Cat(“汤姆”);创建的实例对象存放在堆空间,返回一个内存地址的引用,存储在cat变量中。这样就可以通过cat变量所指向的引用访问Cat实例当中所有可见的成员了。
- 这是一个测试文件
- 这是一个测试!
- 这是一个测试
- 这是一个测试
- 这是一个测试
- 这是一个测试
- 这是一个测试
- 这是一个测试文档
- 这是一个测试代码
- 这是一个测试文章
- 这是一个测试帖子
- 这是一个测试文章
- 这是一个测试页面
- 这是一个测试信息
- 这是一个测试博客
- 这是一个测试文章
- 这是一个测试啊
- 这是一个测试,勿看。
- 《代码之髓》读书笔记(四)——具体的知识和抽象的知识
- android应用开发全程实录-你有多熟悉listview?
- 仿百度首页背景图片始终全屏
- 红帽新RHEL 7.1企业版发布
- (4.1.24)Android 官方推荐 DialogFragment 创建对话框
- 这是一个测试文件
- 使用SwitchyOmega让Chrome开启智能中国模式
- 张量的概念及其理解
- eclipse工具如何查看jar包源代码
- Spring Batch事务处理
- swift之UIButton
- (4.1.24.1)Android中Dialog的使用
- Log4j配置文件被覆盖,log4j.properties无效(检查方法)
- 常用的gdb命令