服务器之家

服务器之家 > 正文

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

时间:2020-09-16 15:42     来源/作者:StellaAh

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()

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

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址
电视剧《琉璃》全集在线观看 琉璃美人煞1-59集免费观看地址 2020-08-12
最新idea2020注册码永久激活(激活到2100年)
最新idea2020注册码永久激活(激活到2100年) 2020-07-29
返回顶部