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

 更新时间:2017年04月23日 15:28:29   作者:StellaAh  
这篇文章主要介绍了Java中自动生成构造方法详解的相关资料,需要的朋友可以参考下

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

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

例1:

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:

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类已经声明构造方法,默认的那个不带参数的构造方法就不产生了.

再举例:

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

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

相关文章

  • 基于maven搭建一个ssm的web项目的详细图文教程

    基于maven搭建一个ssm的web项目的详细图文教程

    这篇文章主要介绍了基于maven搭建一个ssm的web项目的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • java 输入一个数字,反转输出这个数字的值(实现方法)

    java 输入一个数字,反转输出这个数字的值(实现方法)

    下面小编就为大家带来一篇java 输入一个数字,反转输出这个数字的值(实现方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • SpringBoot超详细分析启动流程

    SpringBoot超详细分析启动流程

    今天小编就为大家分享一篇关于SpringBoot整个启动过程的分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2022-07-07
  • jvm细节探索之synchronized及实现问题分析

    jvm细节探索之synchronized及实现问题分析

    这篇文章主要介绍了jvm细节探索之synchronized及实现问题分析,涉及synchronized的字节码表示,JVM中锁的优化,对象头的介绍等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-11-11
  • 如何用struts调用支付宝接口

    如何用struts调用支付宝接口

    以下为大家介绍如何用struts调用支付宝接口的例子。
    2013-04-04
  • 详解SpringMVC重定向传参数的实现

    详解SpringMVC重定向传参数的实现

    本篇文章主要介绍了详解SpringMVC重定向传参数的实现,我们可以使用重定向的方式,改变浏览器的地址栏,防止表单因为刷新重复提交。有兴趣的可以了解一下。
    2017-01-01
  • SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法

    SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法

    一般单独使用 Spring Boot 时,bootstrap.yml 文件一般是不会生效的,也就是没有小绿叶图标,本文给大家介绍了SpringBoot无法识别bootstrap.yml小绿叶问题的解决办法,文中给出了两种解决方案,需要的朋友可以参考下
    2024-07-07
  • java 序列化与反序列化的实例详解

    java 序列化与反序列化的实例详解

    这篇文章主要介绍了java 序列化与反序列化的实例详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • 详解Mybatis的缓存

    详解Mybatis的缓存

    这篇文章主要介绍了Mybatis缓存的相关资料,帮助大家更好的理解和使用Mybatis框架,感兴趣的朋友可以了解下
    2021-01-01
  • 带你了解Java数据结构和算法之二叉树

    带你了解Java数据结构和算法之二叉树

    这篇文章主要为大家介绍了Java数据结构和算法之二叉树,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01

最新评论