:) 1、因为构造器是不能够被继承的,
:D2、因为构造器要和类名相同,如果子类重写一个与父类构造器名相同的方法,那么这两个类的名字不就一样了麽
3、我们用super来调用父类的构造器,但这不是重写。
4、使用this来重载同一个类中的构造器--同一个类中
如下程序[code=java]package cn.itcast.heima
class Person
{
public String name;
public int age;
public String address ;
//父类的构造器
public Person(String name , int age)
{
this.size = size;
this.name = name;
}
//构造器的重载
public Person(String name , int age , String address)
{
//通过this来调用另一个重载的构造器
this(name , address);
this.address = address;
}
}
public Student extends Person
{
public String color;
public Student(String name , int age , String color)
{
//通过super调用来调用父类构造器的初始化过程
super(name , age);
this.color = color;
}
/*下面重写,编译根本不会通过,
public Person (String name , int age , String color)
{
//通过super调用来调用父类构造器的初始化过程
super(name , age);
this.color = color;
}
*/
public static void main(String[] args)
{
Student s = new Student ("测试对象" , 22 , "红色");
//输出Sub对象的三个属性
System.out.println(s.name + "--" + s.age + "--" + s.color);
}
}[/code] |