打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java 构造函数初始化全过程以及顺序
public class Test1 {
   public static int k=0;
   public static Test1 t1=new Test1("t1");
   public static Test1 t2=new Test1("t2");
   public static int i=print("i");
   public static int n=99;
   public int j=print("j");
  
  
   {
    print("构造块");
   }
   static {
    print("静态快");
   
   }
   public Test1(String str){
    System.out.println((++k)+":"+str+"     i="+i+"   n="+n);
    ++n;++i;
   }
   public static int print(String str){
    System.out.println((++k)+":"+str+"   i="+i+"     n="+n);
    ++n;
    return ++i;
   }
   public static void main(String[] args) {
 Test1 t=new Test1("init");
}
}
1:j   i=0     n=0
2:构造块   i=1     n=1
3:t1     i=2   n=2
4:j   i=3     n=3
5:构造块   i=4     n=4
6:t2     i=5   n=5
7:i   i=6     n=6
8:静态快   i=7     n=99
9:j   i=8     n=100
10:构造块   i=9     n=101
11:init     i=10   n=102
从运行结果可以看出,先进行类的静态初始化,包括静态块和静态变量,谁在前谁就先初始化,然后则是构造函数本身,这同时也包含两个部分:构造快和成员变量,顺序由出现的顺序决定,谁先出现谁先执行,然后才是构造函数体本身。

类的继承知识点

  (1)java不支持多重继承,也就是说子类至多只能有一个父类

  (2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法

  (3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承

  (4)子类中定义的成员方法,并且这个成员方法的名字,返回类型,及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。

public abstract class A {

  int i=1;

  public void printI() {

  System.out.println("i="+i);

  }

  }

  public class B  extneds A{

  int i=2;

  public static void main(String[] args) {

  B b=new B();

  b.printI();

  }

  }
正确结果1
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
父类和子类,实例、静态成员变量,构造函数的执行顺序
Java类和对象及实例
c#类的成员初始化顺序
Java|继承学习总结
final、static、代码块、静态代码块、内部类、代码执行顺序
java对象的初始化顺序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服