Java学习篇之--构造函数心得分享
2015-03-24 09:29
381 查看
构造函数篇
源代码:package com.ryze.struct.test; public class Struct { public static int i = 0; public static void main(String[] args) { A a1 = new A(); A a2 = new A("瑞兹","啦啦啦德玛西亚"); B b1 = new B(); B b2 = new B("法师","男"); } } class A{ String userName; String passWord; public A(){ System.out.println("A的无参构造函数第"+Struct.i+"次调用"+"\n"); Struct.i++; } public A(String name,String pword){ this.userName = name; this.passWord = pword; System.out.println("A的有参构造函数:\n"+" "+"用户名:"+userName+"\n"+" "+"密码: "+passWord+"\n"); } } class B extends A{ String identity; String sex; public B(){ System.out.println("B的无参构造函数"+"\n"); } public B(String id,String sex){ this.identity = id; this.sex = sex; System.out.println("B的有参构造函数:\n"+" "+"性别:"+sex+"\n"+" "+"身份:"+identity+"\n"); } }
运行结果:
A的无参构造函数第0次调用 A的有参构造函数: 用户名:瑞兹 密码: 啦啦啦德玛西亚 A的无参构造函数第1次调用 B的无参构造函数 A的无参构造函数第2次调用 B的有参构造函数: 性别:男 身份:法师
说明了创建一个子类的对象实例的时候,必先调用父类的无参数的构造函数(默认构造函数),假如父类有带参数的构造函数,那么系统将不会给它创建无参数的构造函数,这时,子类在实例化的时候,因为找不到父类的默认构造函数,编译器将会报错,但如果在子类的构造函数中指定用父类的带参数的构造函数的时候,或者在父类中加一个无参数的构造函数,就不会报错。
详细说明:
1、如果程序员没有给类A提供构造函数,则编译器会自动提供一个默认的无参数的构造函数,如果用户提供了自己的构造函数,则编译器就不在提供默认的无参数构造函数。
2、子类B实例化时会自动调用父类A的默认构造函数,所以如果A的默认的无参数的构造函数为private,则编译器会报错,而如果A没有提供默认的无参数的构造函数,而提供了其他类型的构造函数,编译器同样会报错,因为B找不到A的默认无参数构造函数。所以,我们最好给父类A提供一个无参数的构造函数。
3、在B的构造函数中显示的调用父类A的有参构造函数super(parameter);。
相关文章推荐
- 分享我的大型Java多用户商城系统开发的心得和困难
- 分享学习JAVA的几点心得体会
- 关于Java Tomcat 内存溢出排查心得分享
- Java排序实现的心得分享
- 分享我的大型Java多用户商城系统开发的心得和困难
- JAVA开发:分享一些SpringMvc+Ibatis+spring的框架使用心得
- Java学习心得(看到后觉得很好,在博客上分享一下,希望对大家有启发)
- 分享:JAVA学习心得体会
- 分享我的大型Java多用户商城系统开发的心得和困难
- 初级程序猿,系统重装之后软件安装心得分享(一JAVA,安卓开发环境安装篇)
- 【JAVA】心得分享(二)之解决Tomcat.exe或者startup.bat 一闪无法打开的问题
- 【JAVA学习笔记】-零基础学习JAVA人分享自己的心得(转)
- Java 报表工具 Finereport 7.0 使用心得(分享)
- 黑马程序员—3—Java基础: 构造函数简介与用法和学习心得体会
- 一名Java架构师分享自己的从业心得,从码农到架构师我用了八年
- JAVA技术分享之构造函数
- 分享我的大型Java多用户商城系统开发的心得和困难
- JAVA心得分享---return语句的用法
- 分享我的大型Java多用户商城系统开发的心得和困难
- 【转】分享我的大型Java多用户商城系统开发的心得和困难