java 构造函数初始化_java 构造函数初始化全过程以及顺序

java 构造函数初始化_java 构造函数初始化全过程以及顺序publicclassTest1{publicstaticintk=0;publicstaticTest1t1=newTest1(“t1”);publicstaticTest1t2=newTest1(“t2”);publicstaticinti=print(“i”);publicstaticintn=99;publicintj=print(“j”);{p…

大家好,欢迎来到IT知识分享网。java 构造函数初始化_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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12002.html

(0)
上一篇 2024-03-18 12:00
下一篇 2024-03-18 13:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信