Java中自动生成构造方法详解

2025-05-29 0 76

Java自动生成构造方法详解

每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法,如果类一但声明有构造方法,就不会产生了.证明如下:

例1:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
class person

{

person(){System.out.println("父类-person");}

person(int z){}

}

class student extends person

{

// student(int x ,int y){super(8);}

}

class Rt

{

public static void main(String[]args)

{

student student_dx=new student();//创建student类的对象

}

}

//输出结果:父类-person

例2:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
class person

{

person(){System.out.println("父类-person");}

person(int z){}

}

class student extends person

{

student(int x ,int y){super(8);}

}

class Rt

{

public static void main(String[]args)

{

student student_dx=new student(3,4);//创建student类的对象

}

}

//没有输出结果

例1说明:student类自动生成student() {super();}(前提是:student类没有声明构造方法的前提下) 'super()'是用来调用父类的构造方法.

例2中的person()方法没有被调用,说明student类没有产生student(){super();}方法.这是因为student类已经声明构造方法,默认的那个不带参数的构造方法就不产生了.

再举例:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
class person

{

person(int z){}

}

class student extends person

{

}

class Rt

{

public static void main(String[]args)

{

student student_dx=new student();//创建student类的对象

}

}

/*报错:

exercise14.java:8: 找不到符号

符号: 构造函数 person()

位置: 类 person

class student extends person

^

1 错误

*/

说明:student类自动产生了一个student(){super();},但是由于person类已经声明了构造方法,默认的那个带参数的构造方法没有产生.,所以报错中提到找不到构造函数person()

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java中自动生成构造方法详解 https://www.kuaiidc.com/116902.html

相关文章

发表评论
暂无评论