看了马老师的视频,百度了一下,随即敲了一些代码,super是超人,超级的意思,层面上理解为父类
class Person {
Person(){
System.out.println("A person");
}
Person(String name){
System.out.println("A person name is=" +
name);
}//构造方法的重载(方法名返回值一样,名字一样,参数类型或者数量不同的称为方法的重载);
}
public class
Chinese extends Person{
Chinese(){
super();
//子类调用父类无形参的构造函数(子类的构造函数调用另一个类的构造函数时,super();一定要写在调用的构造函数的第一行);
System.out.println("A
chinese");
}
Chinese(String
name){
super(name);
//调用父类具有相同形参的构造方法;
System.out.println("my name is =" + name);
}
Chinese(int age,String name){
this(name);
\\this:调用当前具有相同形参的构造方法.并且,当子类没有刻意用super();调用父类的构造方法的时候,系统默认的为它调用父类中无参的构造方法;
System.out.println("my age is=" +
age);
}//构造方法的重载!
public static void main(String[]
args){
Chinese chinese = new
Chinese();
chinese = new
Chinese("周杰伦");
chinese = new
Chinese(35, "周杰伦");
}
}
运行结果如下:
A person
A chinese
A person name is=周杰伦
my name is =周杰伦
A person
name is=周杰伦
my name is =周杰伦
my age is=35
继承中的构造方法总结为四点
1:子类的构造过程中必须调用基类的构造方法;
2:子类刻意在自己的构造方法中使用super(argument_list)调用基类的构造方法;
a:使用this(argument_list)调用当前类的另外的构造方法;
b:如果调用super();必须写在子类构造方法的第一行;
3:如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用基类中无参的构造方法;
4:如果子类构造方法中既没有显示地调用基类构造方法,而基类中没有无参的构造方法,则编译出错;
原文:http://www.cnblogs.com/wry13172/p/Java_super.html