Java构造详解
2016-01-27 14:27
489 查看
Java构造详解
本文就Java构造加载做以下描述:java中,构造不可继承,但构造可通过隐式或者显式调用。隐式默认调用父类的无参构造,省略super关键字;显示调用时,在子类的构造方法的第一行通过super关键字初始化父类实例,必须放在第一行,否则在初始化子类的时候并没有完成对父类的初始化,引发编译器保存。
下文用一下简单的类说明对应关系
public class B{
public B(){
//无参构造是默认的,如果提供有参构造时,则无参构造不存在,若需使用,需显式说明
System.out.println("子类无参数构造执行");
}
pulic B(String s){
System.out.println("子类有参构造执行");
}
}
public class A extends B{
public A(){
//此处默认省略了super();
[b] System.out.println("父类无参数构造执行");
[/b]
}
public A(String s){
//此处不书写时,默认调用父亲的无参构造
[b] System.out.println("父类有参数构造执行");
[/b]
}
}
测试:
1.实例化A无参数构造时:输出结果如下:
父类无参数构造执行
子[b]类无参数构造执行[/b]
2[b].实例化A有参数构造时:输出结果如下:[/b]
父类无参数构造执行
子[b]类有参数构造执行[/b]
[b] 下文详解:静态代码块的加载方式[/b]
本文就Java构造加载做以下描述:java中,构造不可继承,但构造可通过隐式或者显式调用。隐式默认调用父类的无参构造,省略super关键字;显示调用时,在子类的构造方法的第一行通过super关键字初始化父类实例,必须放在第一行,否则在初始化子类的时候并没有完成对父类的初始化,引发编译器保存。
下文用一下简单的类说明对应关系
public class B{
public B(){
//无参构造是默认的,如果提供有参构造时,则无参构造不存在,若需使用,需显式说明
System.out.println("子类无参数构造执行");
}
pulic B(String s){
System.out.println("子类有参构造执行");
}
}
public class A extends B{
public A(){
//此处默认省略了super();
[b] System.out.println("父类无参数构造执行");
[/b]
}
public A(String s){
//此处不书写时,默认调用父亲的无参构造
[b] System.out.println("父类有参数构造执行");
[/b]
}
}
测试:
1.实例化A无参数构造时:输出结果如下:
父类无参数构造执行
子[b]类无参数构造执行[/b]
2[b].实例化A有参数构造时:输出结果如下:[/b]
父类无参数构造执行
子[b]类有参数构造执行[/b]
[b] 下文详解:静态代码块的加载方式[/b]
相关文章推荐
- Java算法-简单选择排序
- Java算法-冒泡排序
- Java内存机制
- Jboss设置Java系统变量常用方法
- Pascal's Triangle 2(leetcode java)
- Java项目经验——软件工程师成长的关键
- java组合算法应用:购物满减(任意数字组合相加在某个范围内)
- 详细讲解Java中的类加载器
- JAVA敏捷开发环境搭建
- HouseMD, 比BTrace更实用的Java运行诊断工具
- 在MyEclipse中使用maven
- 生成随机数-java工具类
- java继承方法重写权限问题
- 关于spring+springMVC+myBatis的一些基础配置以及整合
- MyBatis3整合Spring3、SpringMVC3
- Java遍历Map对象的四种方式
- volatile关键字作用与内存可见性、指令重排序概述[JAVA]
- Java中,logger.debuge是什么意思?有什么作用?
- JAVA 静态内部类用法
- java获取cpu、内存、硬盘信息