package com.bing.test.fatherson;
/**
* 测试父子关系
* @author bing
* @since 2017/3/3
*
* Father father=new Father("父亲的名字");
* father.speak();
* --父类的静态代码块--
* --父类的非静态代码块--
* --父类的有参构造函数--父亲的名字
* --父类的方法--
*/
public class Father {
private String name;
static{
System.out.println("--父类的静态代码块--");
}
{
System.out.println("--父类的非静态代码块--");
}
public Father(){
System.out.println("--父类的无参构造函数--");
}
public Father(String name){
this.name = name;
System.out.println("--父类的有参构造函数--"+this.name);
}
public void speak(){
System.out.println("--父类的方法--");
}
}
package com.bing.test.fatherson;
/**
*
* @author bing
* @since 2017/3/4
* Son son=new Son("儿子的名字");
* son.speak();
* --父类的静态代码块--
* --子类的静态代码块--
* --父类的非静态代码块--
* --父类的无参构造函数--
* --子类的非静态代码块--
* --子类的有参构造函数--儿子的名字
* --子类Override了父类的方法--
*
* Father fa = new Son("儿子的名字");
* fa.speak();
* --父类的静态代码块--
* --子类的静态代码块--
* --父类的非静态代码块--
* --父类的无参构造函数--
* --子类的非静态代码块--
* --子类的有参构造函数--儿子的名字
* --子类Override了父类的方法--
*/
public class Son extends Father{
private String name;
static{
System.out.println("--子类的静态代码块--");
}
{
System.out.println("--子类的非静态代码块--");
}
public Son(){
System.out.println("--子类的无参构造函数--");
}
public Son(String name){
this.name = name;
System.out.println("--子类的有参构造函数--"+this.name);
}
@Override
public void speak(){
System.out.println("--子类Override了父类的方法--");
}
}