版权声明:本文为博主项目中经验总结,著文备份,欢迎补充交流! https://blog.csdn.net/u013806583/article/details/69936278
父类:
package extend;
/**
* Created by guan on 4/9/17.
*/
public class Parent {
public String name;
private String passwd;
public Parent(String name,String passwd)
{
this.name=name;
this.passwd=passwd;
}
@Override
public String toString() {
String s="name: "+name+
"\tpasswd: "+passwd;
return s;
}
}
子类:
package extend;
/**
* Created by guan on 4/9/17.
*/
public class Child extends Parent {
public Child()
{
super("Child", "Child Passwd");
}
public Child(String name, String passwd) {
super(name, passwd);
}
//========================================
/**
* main函数,程序入口
* @param args
*/
public static void main(String[] args)
{
System.out.println(new Child().toString());
System.out.println(new Child("Guan","123456"));
}
//========================================
}
结果
name: Child passwd: Child Passwd
name: Guan passwd: 123456
子类继承父类中,子类会在构造函数中调用父类的构造函数:
1. 如果没有显式定义,系统会自动添加super()来调用父类构造函数。
- super()调用的是父类的无参构造函数。
- 如果父类 没有无参构造函数,则编译器报错。
2. 如果已经显式定义 ,则会根据定义的super(* ,* ,* , … )来调用对应的父类的构造函数.