/*继承中构造函数的特点: 在创建子类对象时,先调用父类的构造方法,再调用子类的构造方法
原因是:系统自动在子类的构造函数的第一行加入了一条语名:super()
super()默认是调用父类中无参的构造函数
当父类中不存在无参的构造函数时,必须在子类构造函数的第一行中手动加入super语句,调用父类的某个构造方法
*/
/*class Fu
{
int age;
String name;
Fu()
{
System.out.println("fu");
}
Fu(int age,String name)//初始化属性name,age
{
this.age=age;
this.name=name;
System.out.println(age);
}
}
class Zi extends Fu
{ double weight;
Zi()
{ //super();若父类中没有zi(),则只能自己写super函数:super(20,"Tom");
System.out.println("zi");
}
Zi(int age,String name,double weight)
{
super(age,name);
this.weight=weight;
//System.out.println(age);
//this.age=age;
//this.name=name;不用再写,利用父类初始化
}
}
class Demo12
{
public static void main(String[] args)
{
Zi z=new Zi(25,"王尚权",65.0);
}
}*///特例 :this()用于同一个类中不同构造函数的调用 ,this()也必须出现在第一行,super()失效
class Fu
{
int age;
Fu()
{
System.out.println(age);
}
Fu(int age)
{
this.age=age;
//System.out.println(age);
}
}
class Zi extends Fu
{
Zi()
{}
Zi(int age)
{
this();
}
}
class Demo1_1
{
public static void main(String[] args)
{
Zi z=new Zi(23);
}
}
Java继承构造函数特点(3)
最新推荐文章于 2023-08-23 12:13:46 发布