package com.qimenguigu.jbs.huawei;
/**
*子类继承父类的测试,父类
*@author Li Jia Xuan
*@version 1.0
*@since 2012-10-26
*@time 上午10:19:52
*/
public class Test7_extends {
int i=1;
static int j=5;
{
System.out.println("父类的构造代码块");
}
static{
System.out.println("父类的静态代码块");
}
Test7_extends(){
System.out.println("父类的构造函数");
}
void say(){
System.out.println("我是父类");
}
static void eat(){
System.out.println("我喜欢吃水果");
}
}
------------------------------------------------------------------------
package com.qimenguigu.jbs.huawei;
/**
* 子类
*@author Li Jia Xuan
*@version 1.0
*@since 2012-10-26
*@time 下午02:42:02
*/
public class Test7_extends_1 extends Test7_extends {
int i=10;
static int j=50;
{
System.out.println("子类的构造代码块>>>>>>>>>>>>");
}
static{
System.out.println("子类的静态代码块<<<<<<<<<<<<");
}
Test7_extends_1(){
System.out.println("子类的构造函数");
}
void say(){
System.out.println("我是子类");
}
static void eat(){
System.out.println("我喜欢吃橘子");
}
public static void main(String[] args) {
// Test7_extends t=new Test7_extends();
//执行结果:父类的静态代码块,子类的静态代码块,父类的构造代码块,父类的构造函数
// t.say();//父类的方法
// System.out.println(t.i);//父类的成员函数
// System.out.println(t.j);//父类的静态成员函数
Test7_extends t1=new Test7_extends_1();
//执行结果:父类的静态代码块,子类的静态代码块,父类的构造代码块,父类的构造函数,子类的构造代码块,子类的构造函数
t1.say(); //重写了父类的方法
t1.eat(); //执行父类的静态方法,静态方法不能重写,
System.out.println(t1.i); //调用父类的成员函数
System.out.println(t1.j);//调用父类的成员函数
}
}
分享到:
相关推荐
总之,Java类继承初始化顺序涉及到静态和非静态初始化块、构造器的调用以及方法的覆盖。理解这些概念对于编写健壮的、易于维护的Java代码至关重要。在实际编程中,应合理利用继承特性,同时注意避免不必要的复杂性和...
在Java编程语言中,类和对象的初始化是一个关键的概念,对于理解和编写健壮的程序至关重要。这个"java代码的初始化顺序demo"显然旨在演示这一过程。让我们深入探讨Java中的初始化顺序及其背后的机制。 1. **类加载...
本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础知识 1. **静态成员变量(Static Fields)**:在类加载时初始化。 2. **实例成员变量(Instance Fields)**...
为了更好地理解类继承初始化顺序的概念,下面通过一段示例代码来进行详细分析: ```java class Base { public Base() { System.out.println("Base constructor"); } } class Derived extends Base { public ...
这通常用于初始化静态变量或者执行一些类级别的设置工作,例如设置默认值、计算值或者建立静态数据结构等。 下面是一些关于Java静态初始化块的关键知识点: 1. **执行顺序**:静态初始化块在非静态初始化块之前...
- 静态初始化块(static{}):如果类中存在静态初始化块,该块的代码会在类加载后的准备阶段执行,用于初始化静态变量或执行其他静态设置任务。 - 静态变量的赋值:接着,静态变量会被赋予它们的初始值,这可以是...
同时,了解List的初始化方法也可以帮助开发者更好地理解Java中的数据结构。 在实际开发中,选择合适的List初始化方法可以提高开发效率和代码质量。了解这些方法可以帮助开发者更好地使用Java中的List数据结构,并...
在面试中,面试官可能会通过这种类型的题目来评估应聘者对Java内存模型的理解,以及他们在编写代码时是否能考虑到这些初始化规则,从而避免潜在的陷阱。因此,掌握类的初始化顺序是每个Java开发者必备的知识点。
Java编程语言中,静态块(static block)和初始化块(instance initialization block)是两种特殊的代码块,它们在程序运行的不同阶段被执行,对于类和对象的初始化有着重要作用。同时,`main`方法是Java程序的入口...
Java中的静态初始化块是一种特殊的块,它在Java类中用于初始化静态变量和静态方法。静态初始化块的执行顺序是在类加载时执行的,而不是在实例化对象时执行的。静态初始化块的执行顺序是从上到下依次执行的,先执行...
在本文中,我们将详细介绍Java类继承关系中的初始化顺序,并通过实例形式对比分析Java非继承关系中的初始化与继承关系中的初始化相关原理与操作技巧。 首先,让我们来了解Java类继承关系中的初始化顺序。在Java中,...
4. **静态方法不可被覆盖**: 在Java中,静态方法是不能被覆盖的,因为静态方法与类绑定而不是与对象绑定。 5. **最终方法不可被覆盖**: 如果父类中的方法被声明为`final`,那么这个方法不能被子类覆盖。 6. **...
1. **静态成员和静态初始化块**:首先,会按照父类到子类的顺序初始化静态变量和执行静态初始化块。在上面的例子中,"父类 --静态变量" 和 "子类 --静态变量" 先被初始化,然后分别执行对应的静态初始化块。 2. **...
Java 继承是面向对象编程中的一个核心概念,它允许一个类...通过深入理解并灵活运用 Java 的继承和方法重写,可以编写出更具可维护性和扩展性的代码。在实际开发中,合理地利用这些特性,能有效提升软件的质量和效率。
- 在类加载阶段,按顺序初始化静态成员变量、静态初始化块。 - 在实例化过程中,按顺序初始化实例成员变量、实例成员函数,最后调用构造函数。 了解这个顺序对于理解和调试涉及多层继承和复杂初始化逻辑的Java代码...
Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...
本文将深入探讨Java中的初始化过程,包括对象的构造器初始化以及类成员的初始化顺序,同时也会涉及Java的垃圾回收机制,即内存的自动清理。 首先,让我们详细了解一下Java中的构造器初始化。构造器是Java中用于初始...
在Java中,类的初始化顺序...3. 开发者应当注意静态成员的初始化顺序,避免在继承中产生依赖问题或运行时错误。 理解并掌握这些知识点对于Java程序员来说至关重要,能够帮助他们更好地设计类结构,写出更健壮的代码。
理解ClassLoader的工作机制以及类变量初始化的顺序对于深入理解Java运行时环境至关重要。这篇博文将探讨这两个主题。 首先,让我们深入了解Java的ClassLoader。ClassLoader是一个抽象类,它是Java中的一个关键组件...
在Java中,静态成员(包括静态变量和静态方法)在任何类的实例创建之前都会被初始化。这意味着无论是否创建了该类的对象,静态成员都将在程序运行时首次访问该类时被初始化。此外,静态成员在整个程序的生命周期内只...