/**
* 父类
* @author:hounk
* @version 创建时间:2017年3月19日 下午5:40:44
*/
public class FatherTest {
private String name;
FatherTest() {
System.out.println("--父类的无参构造函数--");
}
FatherTest(String name) {
this.name = name;
System.out.println("--父类的有参构造函数--" + this.name);
}
static {
System.out.println("--父类的静态代码块--");
}
{
System.out.println("--父类的非静态代码块--");
}
public void speak() {
System.out.println("--父类的方法--");
}
// 加入一个main程序后
public static void main(String[] args) {
System.out.println("--父类main方法--");
FatherTest father = new FatherTest("父亲的名字");
father.speak();
}
}
执行结果:
--父类的静态代码块--
--父类main方法--
--父类的非静态代码块--
--父类的有参构造函数--父亲的名字
--父类的方法--
/**
* 子类
* @author:hounk
* @version 创建时间:2017年3月19日 下午5:42:51
*/
public class SonTest extends FatherTest {
private String name;
static{
System.out.println("--子类的静态代码块--");
}
{
System.out.println("--子类的非静态代码块--");
}
SonTest(){
System.out.println("--子类的无参构造函数--");
}
SonTest(String name){
this.name=name;
System.out.println("--子类的有参构造函数--"+this.name);
}
@Override
public void speak(){
System.out.println("--子类Override了父类的方法--");
}
//然后再加入一个main函数
public static void main(String[] args) {
System.out.println("--子类main方法--");
FatherTest father=new FatherTest("父亲的名字");
father.speak();
SonTest son=new SonTest("儿子的名字");
son.speak();
}
}
执行结果:
--父类的静态代码块--
--子类的静态代码块--
--子类main方法--
--父类的非静态代码块--
--父类的有参构造函数--父亲的名字
--父类的方法--
--父类的非静态代码块--
--父类的无参构造函数--
--子类的非静态代码块--
--子类的有参构造函数--儿子的名字
--子类Override了父类的方法--