子类的实例化过程

1.生成子类的过程

定义两个类:

1.Person类

2.student类继承Person

子类不能继承父类的构造函数

定义一个主函数

在子类的构造函数当中,必须调用父类的构造函数

如果子类的构造函数里没有显示的调用父类的构造函数,编译器会自动加上super();

为什么子类必须要调用父类的构造函数?

由于子类继承了父类当中的成员变量,但是子类不能继承父类的构造函数,所以在子类构造函数给成员变量赋值的时候必然会产生重复代码,所以可以通过调用父类的构造函数来给成员变量赋值

Super()必须要是构造函数的第一条语句

时间: 2024-09-27 04:21:46

子类的实例化过程的相关文章

子类对象实例化过程

子类的实例化主要分为两个步骤: <1>.类相关静态内容 初始化: *先父类再子类:  1.父类的static属性:   2.父类的static块:   3.子类的static属性:   4.子类的static块: <2>.类的实例内容 初始化: *调用构造子:先父类后子类:构造子调用之前先实例化实例字段和块 5.父类的普通属性:   6.父类的普通块:   7.父类的构造子:   8.子类的普通属性:   9.子类的普通块:   10.子类的构造子: 1 public class

面向对象(子父类中构造函数的特点-子类实例化过程)

/* 3,子父类中的构造函数. 在对子类对象进行初始化时,父类的构造函数也会运行, 那是因为子类的构造函数默认第一行有一条隐式的语句 super(); super():会访问父类中空参数的构造函数.而且子类中所有的构造函数默认第一行都是super(); 为什么子类一定要访问父类中的构造函数. 因为父类中的数据子类可以直接获取.所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的.//指在在父类构造函数初始化 所以子类在对象初始化时,要先访问一下父类中的构造函数. 如果要访问父类中指定

一个对象的实例化过程【重点】

一.过程  Person p = new Person();  1,JVM会去读取指定路径下的Person.class文件,并加载进内存,    并会先加载Person的父类(如果有直接父类的情况下)  2,在堆内存中开辟空间,分配地址.  3,并在对象空间中,对对象中的属性进行默认初始化  4,调用对应的构造函数,进行初始化  5,在构造函数中,第一行会先调用父类中的构造函数进行初始化.  6,父类初始化完毕后,再对子类的属性,进行显示初始化.  7,指定构造函数的特定初始化  8,初始化完毕

10. JavaSE-子类实例化过程 & 构造方法间调用

子类的实例化过程: 子类中所有的构造函数默认都会访问父类中空参数的构造函数. class Parent { Parent(){ System.out.println("parent class run"); } } class Children extends Parent { Children(){ //super();//调用的就是父类空参数的构造函数 System.out.println("children class run"); //return; /*说

java4android (继承中的子类实例化过程)

生成子类的过程 见代码: class Person { String name; int age; Person(){ System.out.print("Person的无参数构造函数"); } Person(String name,int age){ this.name = name; this.age = age; System.out.print("Person的有2个参数的构造函数"); } void eat(){ System.out.print(&quo

子类对象的实例化过程

-----------siwuxie095 在子类对象实例化之前,必须先调用父类中的构造方法,之后调用子类构造方法 代码: package com.siwuxie095.extendsdemo; class Father{ private String name; private int age; public Father() { System.out.println("父类的构造方法"); } } class Son extends Father{ public Son() { S

类加载过程(clinit()),对象实例化过程(init())

类加载过程: 1.类加载就是执行Java程序编译之后在字节码文件中生成的clinit()方法(称之为类构造器),clinit()方法由静态变量和静态代码块组成. 2.子类的加载首先需要先加载父类,如果父类为接口.则不会调用父类的clinit方法.一个类中可以没有clinit方法. 3.clinit方法中的执行顺序为:父类静态变量初始化,父类静态代码块,子类静态变量初始化,子类静态代码块. 4.clinit()方法只执行一次. 对象实例化过程: 1.对象实例化过程就是执行Java程序编译之后在字节

深夜睡不着,第二篇随笔,说说js的创建实例化过程

媳妇白天加班太累了,我呢,白天睡太多了,晚上太过于亢奋,自己一个人偷偷的拿着笔记本到客厅写博客~ 上一篇可能很多人看到了觉得就是个joke,那个真的是一个joke,但是在实际开发过程中,很多年轻的coder对于写不写分号很不以为然,要知道,真实生产环境下的代码要远比我栗子中给的代码要复杂得多,因此很有可能不用我的误导,你就看不出来,因此浪费了一下午的宝贵开发时间,所以写代码还是要规范一些. 第二篇文章我依旧不想讲太过于深入的技术,还是说两个“花边新闻”,聊以自慰罢了,看官有兴致你就看,没兴致也可

Mybatis深入之DataSource实例化过程

Mybatis深入之DataSource实例化过程 简介 主要介绍Mybatis启动过程中DataSource实例化的过程.为后面解析一个完整SQL执行过程做个前章. Mybatis中DataSource体系 MybatisDataSource整体简介 Mybatis中关于数据库的类都在org.apache.ibatis.datasource包中 Mybatis配置文件中关于数据库的配置: <environments default="development"> <e