子类对象的实例化过程

-----------siwuxie095

在子类对象实例化之前,必须先调用父类中的构造方法,之后调用子类构造方法

代码:


package com.siwuxie095.extendsdemo;

class Father{

private String name;

private
int age;

public Father() {

System.out.println("父类的构造方法");

}

}

class Son extends Father{

public Son() {

System.out.println("子类的构造方法");

}

}

public class ExtendsDemo03 {

public static
void main(String[] args) {

//实例化时,先执行父类的构造方法,再执行子类的构造方法

Son s=new Son();

}

}

运行一览:

【made by siwuxie095】

时间: 03-15

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

JAVA对象的初始化过程

出处:http://blog.csdn.net/andrew323/article/details/4665379 下面我们通过两个例题来说明对象的实例化过程. 例1:   编译并运行该程序会有以下输出 Static Block Employee Company:china soft Non-Static Block Employee phone:0755-51595599 Employee(String) Empoloyee() 下面我们来对结果做分析: 1 在代码34行实例化对象时, 先对给

深入理解Java对象的创建过程:类的初始化与实例化

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 深入理解Java对象的创建过程:类的初始化与实例化 - Rico's Blogs - 博客频道 - CSDN.NET Rico's Blogs 潜心修炼,成为一个更好的人. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅

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

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

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

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

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

11.子类实例化过程

生成子类的过程 子类继承了父类的成员变量,但却无法继承父类的构造函数 当生成子类对象的时候,一定会调用父类的构造函数 如果子类当中没有调用构造函数,编译器会自动添加super(),用于调用父类当中的无参数构造函数 使用super调用父类构造函数的方法 在子类要调用父类函数的话,super()一定要是构造函数的第一条语句 classPerson{ String name; int age; int grade; Person(){ System.out.println("Person的无参数构造函

Java子类继承父类,当实例化子类对象时的执行顺序

子类继承父类,当实例化子类对象时,执行顺序如下:     父类层级静态块      自身静态块     父类块      父类构造器     自身块      自身构造器 由于继承,肯定应该先加载父类再加载子类,加载类自然会调用静态块,然后是调用父类的构造函数和子类的构造函数,不过构造函数调用前肯定要先调用域或块,这样才能正确创建对象. ················································赋值顺序如下:     父类的静态变量赋值     自身的静态变

子类对象实例化的全过程

//子类对象实例化的全过程public class TestDog { public static void main(String[] args) { Dog d = new Dog(); d.setAge(10); d.setName("小明"); d.setHostName("花花"); System.out.println("name:" + d.getName() + " age:" + d.getAge() + &

关于继承(子类对象与父类对象【相互转换】的过程)

<1> using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace list { class A { } class B : A { public A MyMthod() { //你想想看这个MyMthod()方法的返回值类型明明是A类型,为什么这里返回一个B类型对象也不报错呢? return new B(); //因为B类型是A类型的子类,子类对象可以隐式的转换