1. class A
  2. {
  3. public A(){
  4. System.out.println("测试!!!!!!!!!!!");
  5. }
  6. }
  7.  
  8. class Demo19 extends A
  9. {
  10.  
  11. {
  12. x=7;//代码块初始化
  13. System.out.println("hello world!测试代码块的执行顺序!AAAAAAAAAAA");
  14. }
  15. public int x=1;//这里不会初始化变量值 只会声明变量
  16. public int y=2;//这里不会初始化变量值 只会声明变量
  17.  
  18. public Demo19(){
  19. //super();
  20. //相当于 x=7
  21. //然后x=1;
  22. //y=2;
  23. //y=13;
  24. }
  25. public Demo19(int d_x,int d_y)
  26. { //super();
  27. //x=7;
  28. //x=1;
  29. //y=2;
  30. //y=13;
  31. x=d_x;
  32. y=d_y;
  33. //super();//假如显示的调用 那么是不能放在这里初始化的
  34. }
  35. //代码块的执行顺序是按照代码块的顺序执行的
  36. //代码块的执行时间:在对象初始化的时候执行!!!!!!!!!!!!!
  37. {
  38. y=13;//代码块初始化
  39. System.out.println("hello world!测试代码块执行的顺序!BBBBBBBBBBBB");
  40. }
  41.  
  42. //构造函数的代码块
  43.  
  44. public static void main(String[] args)
  45. {
  46. //这里初始化的时候就跟上面的初始化差不多
  47. Demo19 demo=new Demo19();
  48. System.out.println("测试代码块:x="+demo.x+" ,y="+demo.y);
  49.  
  50. //这里的初始化相当于上面的那个操作
  51. Demo19 demoOne=new Demo19(12,45);
  52. System.out.println("测试代码块:x="+demoOne.x+" ,y="+demoOne.y);
  53.  
  54. System.out.println("其他的顺序是不变的!这个是比较重要的");
  55.  
  56. System.out.println("代码块的使用!");
  57.  
  58. }
  59. }

抽象类的初始化:

  1. abstract class A
  2. {
  3. String name;
  4. String id;
  5.  
  6. public abstract void test();
  7. }
  8.  
  9. abstract class B extends A
  10. {
  11. //子类也可以是抽象类,不实现父类的方法
  12. }
  13.  
  14. class C extends A
  15. {
  16. public void test(){
  17. System.out.println("子类假如不是抽象类 那么必须实现父类的方法");
  18. }
  19. }
  20. abstract class D1
  21. {
  22. /* 抽象类中也是有构造函数的,只是这个只能子类初始化 */
  23.  
  24. D1(){
  25. System.out.println("测试抽象类的构造函数!");
  26. }
  27. static String name="什么是你";
  28. }
  29. class D extends D1
  30. {
  31. D(){
  32. System.out.println("子类调用父类的构造函数");
  33. }
  34. public void test(){
  35. System.out.println(this.name);
  36.  
  37. System.out.println("假如抽象类中没有抽象方法,那么继承也是没有问题的");
  38. }
  39. }
  40. class Demo5
  41. {
  42. public static void main(String[] args)
  43. {
  44. D d =new D();
  45. d.test();
  46. System.out.println("抽象类!!!!!");
  47. System.out.println("类不支持多重继承!!!!!!!!!!!!!!!!");
  48. }
  49.  
  50. }

java 对象初始化和代码块初始化顺序的更多相关文章

  1. java 子类的实例化和代码块初始化过程

    1,子类的实例化 1,子父类中的构造函数的特点. 在子类构造对象时,发现,访问子类构造函数时,父类也运行了. 为什么呢? 原因是:在子类的构造函数中第一行有一个默认的隐式语句. super(); 子类 ...

  2. Java 中静态代码块初始化问题测试

    Java 中静态代码块初始化问题测试 原创 情况一:变量是 static final 修饰的"编译期常量",如 public static final String a = &qu ...

  3. Java基础6:代码块与代码加载顺序

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

  4. java代码块执行顺序

    父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...

  5. java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序

    java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...

  6. Java面试题 静态代码块 构造代码块 构造方法 的执行顺序

    JAVA中的静态代码块 构造代码块 构造方法执行顺序: 静态代码块(类加载时执行)>>构造代码块>>构造方法 下面展示一个简单的例子,推荐大家动手运行一遍: public cl ...

  7. Java中的构造代码块

    代码块 ----a静态代码块 ----b构造代码块 ----c普通代码块 执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. a.静态代码块: 静态代码块 ...

  8. java中的静态代码块、构造代码块、构造方法

    运行下面这段代码,观察其结果: package com.test; public class HelloB extends HelloA { public HelloB() { } { System. ...

  9. Java之static静态代码块

    Java之static静态代码块 构造代码块 使用{}包裹的代码区域,这里的代码区域特指位于class{}下面的而不是存在于其他type method(){}这类函数下面的代码区域 public cl ...

随机推荐

  1. WebApi2官网学习记录--- Authentication与Authorization

    Authentication(认证)   WebAPI中的认证既可以使用HttpModel也可以使用HTTP message handler,具体使用哪个可以参考一下依据: 一个HttpModel可以 ...

  2. WebApi2官网学习记录---Attribute Routing

    从WebApi 1迁移到WebAPI 2要改变配置代码如下: WebApi 1: protected void Application_Start() { // WARNING - Not compa ...

  3. 创建和管理表【weber出品必属精品】

    创建表 必须有 : 1. CREATE TABLE 的权限 SQL> conn /as sysdba 已连接. SQL> create user test default tablespa ...

  4. 【转】10 个迅速提升你 Git 水平的提示

    最近我们推出了两个教程:熟悉Git的基本功能和让你在开发团队中熟练的使用Git . 我们所讨论的命令足够一个开发者在Git使用方面游刃有余.在这篇文章中,我们试图探索怎样有效的管理你的时间和充分的使用 ...

  5. DNF(一.YUM已死,DNF代之)

    Yum还没学好呢,突然听到已经要被抛弃了.恐慌至极.. 在最新版的Fedora 22 抛弃了Yum包管理器,取而代之的是DNF.. 那么搜搜 Fedora 22 Release Note.. 官方给出 ...

  6. jQuery代码片段

    禁用页面右键菜单 $(document).bind('contextmenu', function(){ return false; }); 浏览器判断 $.browser.version $.bro ...

  7. JavaWeb学习笔记-使用HttpSession对象跟踪会话

    使用HttpSession接口开发的步骤: 1.获取HttpSession对象 2.对HttpSession对象进行读写 3.手工终止HttpSession,或者自动终止 常用方法: getId(): ...

  8. NSScanner-备

    注意:在扫描的时候,如果 空格是不需要扫描的,那么将会忽略空格. 如下代码:  1  NSString *string = @"my age is d 23    34.0";   ...

  9. 逻辑数据库设计 - 需要ID(谈主键Id)

    本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式. 一.确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要,甚至必需的部分.这确实是事实,主键是好的数据 ...

  10. 屌炸天实战 MySQL 系列教程(二) 史上最屌、你不知道的数据库操作

    此篇写MySQL中最基础,也是最重要的操作! 第一篇:屌炸天实战 MySQL 系列教程(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:屌炸天实战 MySQL 系列教程(二) 史上最屌.你不 ...