子父类中构造函数的特点-----子类实例化过程
来源:互联网 发布:云墙mac下载 编辑:程序博客网 时间:2024/05/18 02:46
- 子类中调用父类的构造函数用super(); 在对子类的对象初始化时,父类的构造函数也会运行,那是因为子类的构造函数默认第一行有一个super():会访问父类中空参数的构造函数,子类中所有的构造函数默认第一行都是super()。
class Fu
{
Fu()
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
System.out.println("zi run");
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
}
}
输出:fu run {
Fu()
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
System.out.println("zi run");
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
}
}
zi run
- 为什么子类一定要访问父类中的构造函数:
因为父类中的数据子类可以直接获取,所以子类对象在建立时需要先查看父类是如何对这些数据进行初始化的,所以子类在对象初始化时,要先访问一下父类中的构造函数,如果要访问父类中的特定构造函数,要手动定义super()
当父类中没有空参数构造函数时,必须显示的写出super()函数;
class Fu
{
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
super(3);//显示的写出要调用的构造函数
System.out.println("zi run");
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
}
}
{
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
super(3);//显示的写出要调用的构造函数
System.out.println("zi run");
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
}
}
输出 fu run...3
zi run
- 子类中的构造函数第一行可以用this()调用本类的父类
子类中至少有一个构造函数访问父类
class Fu
{
Fu()
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends class Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
System.out.println("zi run");
}
Zi(int x)
{
this();//调用本类的构造函数Zi();
System.out.println("zi fun..."+x);
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
Zi z1= new Zi(3);
}
}
{
Fu()
{
System.out.println("fu run");
}
Fu(int x)
{
System.out.println("fu run..."+x);
}
}
class Zi extends class Fu
{
Zi()
{
super();//隐式的super,调用父类构造函数Fu()
System.out.println("zi run");
}
Zi(int x)
{
this();//调用本类的构造函数Zi();
System.out.println("zi fun..."+x);
}
}
class Demo
{
public static void main(String[] args)
{
Zi z = new Zi();
Zi z1= new Zi(3);
}
}
输出:fu run
zi run
fu run
zi run
zi run...3
注意:
- 子类的所有构造函数,默认都会访问父类中空参数的构造函数,因为子类每一个构造函数内的第一行都有一句隐式super();
- 当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来访问指定的父类中的构造函数
- 父类构造函数也有super(),调用Object的构造函数
- this,super不能同时出现,他们都要先执行,因为要先初始化。
- 子父类中构造函数的特点-----子类实例化过程
- JAVA子父类中构造函数的特点-子类实例化过程
- java面向对象-子父类中构造函数的特点-子类实例化过程super
- 面向对象(子父类中构造函数的特点-子类实例化过程)
- 面向对象(子父类中构造函数的特点-子类实例化过程)
- 子父类中的变量,函数,构造函数的特点以及子类的实例化过程
- 面向对象-简单的(子父类构造函数的特点)-子类实例化过程
- Java重修之路(八)面向对象之继承,子父类中变量、函数、构造函数的特点,子类实例化过程。
- static关键字特点懒汉式继承-子父类中的构造函数-子类的实例化过程final关键字抽象类接口
- 【继承】----子父类中的构造函数,子类的实例化过程
- 父类中调用子类构造函数实例化子类的实现
- 父类中调用子类构造函数实例化子类的实现
- 父类中调用子类构造函数实例化子类的实现
- 继承—子父类的构造函数—子类的实例化过程
- 继承—子父类中的构造函数-子类的实例化过程
- 子类父类中类成员(变量、函数、构造函数)的特点
- 子类父类中类成员(变量、函数、构造函数)的特点
- java 子类对象的实例化 调用构造函数先后
- CSS元素之position 定位
- 电池:未来互联网基础设施中的关键部分
- 章二.Windows操作驱动的基本概念(上)
- Java中堆内存和栈内存详解
- Java对象的实例化过程
- 子父类中构造函数的特点-----子类实例化过程
- 对计算机的认识
- 《二次曝光》观后感
- [转]Ruby的头号Gem:Rake
- 拦截器和过滤器的页面跳转问题
- struts2标签实现计数器
- 获取Session和request方法
- struts2使用uploadify进行上传
- linux电子书免费下载