本文主要讲述java中继承的内存分析。

示例1,代码如下:

public class EncapsulationTest {
public static void main(String[] args) {
Son son = new Son();
System.out.println(son.name);
System.out.println(son.age);
System.out.println(son.hobby); }
} class GrandFa {
String name = "爷爷";
String hobby = "喝茶";
}
class Father extends GrandFa{
String name = "爸爸";
int age = 22;
}
class Son extends Father{
String name = "儿子";
}

jvm继承的内存图如下:

运行结果:

示例2,代码如下:

public class EncapsulationTest {
public static void main(String[] args) {
Son son = new Son();
}
} class GrandFa {
String name = "爷爷";
String hobby = "喝茶";
}
class Father extends GrandFa{
String name = "爸爸";
int age = 22;
// public Father (){
// System.out.println("Father()无参构造方法");
// }
public Father(String name,int age){
System.out.println("Father(String name,int age)构造方法");
}
}
class Son extends Father{
String name = "儿子"; public Son (){
// 默认是父类的无参构造方法,如果父类没有无参构造方法,
// 则需要在子类的构造器中,第一行使用super()指定使用父类的构造器。
super("jack",45);
}
}

运行结果:

注意细节:

① 方法区中先加载完父类,再加载子类。

② 父类与子类中相同名称的成员变量分配在不同的存储空间中。

③ 访问某属性时,如果该属性在当前类中,且能够访问,则直接访问;否则,使用get()方法访问,如果当前类中没有该属性,则在其父类中查找该属性。

④ 子类构造器,默认执行父类的无参构造器即super(),可以省略,如果没有父类的无参构造器,则需要在super()中指明父类的构造器,super()必须是在第一行。

最新文章

  1. SQLite剖析之锁和并发控制
  2. httpie工具介绍
  3. SQL Server 临时表的删除
  4. Python——functools
  5. Windows Azure Virtual Machine (33) Azure虚拟机删除重建
  6. Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC
  7. C# 中==与Equals方法比较
  8. CAS Ticket SSO 登录流程图
  9. bootstrap-datepicker的bug:有日期输入的地方在下个月页面选择当天日期会以当天日期减少一个月显示
  10. PL/SQL客户端连接虚拟机(linux)下的oracle服务器配置
  11. Android基础知识笔记01—框架结构与四大组件
  12. 重写equals和hashCode
  13. 【javascript】函数中的this的四种绑定形式 — 大家准备好瓜子,我要讲故事啦~~
  14. Python面试常见的问题
  15. JVM--02
  16. 函数和常用模块【day06】:pickle模块(十二)
  17. BZOJ.4767.两双手(组合 容斥 DP)
  18. Buildroot lmbench使用方法
  19. 为什么.net 4.6.1装了却没看到
  20. oracle 批量更新merge语句

热门文章

  1. 银河麒麟安装node,mysql,forever环境
  2. cf1082 A. Vasya and Book
  3. MyBatis(介绍和环境配置)
  4. 记一次 .NET 某企业OA后端服务 卡死分析
  5. 使用request对象进行简单的注册以及信息显示
  6. JSTL组件的下载链接地址
  7. Request method ‘POST‘ not supported。 Failed to load resource: net::ERR_FAILED
  8. awk模式pattern
  9. springboot使用jira-rest-java-client-api集成jira,自定义对查询board和sprint的支持
  10. 面试 个人摸底监测 考察考察JS三座⼤⼭ 1. 原型和原型链 2. 作⽤域与闭包 3. 异步和单线程 (第四天)