前言:本题考的是类与对象的关系,static ,类的结构等主要基础知识。

public class Person {

publicString name;

publicint age;

publicString sex;

publicstatic int number =13;

{

name ="小高";

age = 23;

}

public Person(String name) {

this.name = name ;

}

}

class Teacher extends Person {

publicString name;

publicint age;

publicString sex;

publicstatic int number = 13;

public Teacher() {

}

public static void main(String args[]) {

Teacher t = new Teacher();

}

}

从内存的角度分析程序的执行过程。

先复习一下知识点:

1.先有类才有对象。

2.先父类再子类。(在子类对象存在前,一定先有父类对象)

3.在main 方法执行前,静态变量首先进驻内存区。所以,静态成员变量总是先于非静态的成员变量进驻内存。

该题的答案是:第一步:父类静态成员变量进驻内存,接着子类静态成员变量进驻内存.

第二步:父类初始化模块区被执行,接着父类构造器被执行,此时父类被创建.

第三步:子类初始化模块区被执行,接着子类构造器被执行,此时子类被创建.

说明:这段代码有点冗余,java中继承的最大好处就是提高代码的重用性,而这段代码中子类的属性父类都有,所以,子类可以直接使用父类的属性,不需要再写,这也体现出了java 继承性的好处

更多相关文章

  1. Java:如何创建特定父类型的集合而不是其子类型?
  2. 环境变量在cron中看不到
  3. Java-子类和父类的几种关系
  4. java中的成员变量和局部变量的区别
  5. 如何在另一个类中使用静态类中的变量?
  6. JAVA 静态方法和静态变量和final和※静态import※
  7. Linux(Centos7.X ) 配置Java 环境变量
  8. java通过映射取得方法对一个类的变量进行赋值
  9. JavaScript基础——变量、作用域和内存问题

随机推荐

  1. navicat for mysql 传输数据失败
  2. 需要从mysql数据库中获得productdata。
  3. 在本地计算机无法启动MySQL服务。错误106
  4. MySQL在Windows下不是免费的,那大家都是怎
  5. 如何使用webrequest使用Json数组绘制折线
  6. MySQL忘记root密码??重置密码方法
  7. mysql 同一表中.两个字段值互相复制,从一
  8. MySQL笔记(二)查询操作
  9. MySQL在保存数据时添加时间戳
  10. mysql中在表中insert数据时,有重复主键id