我对继承的理解:使用已存在的类的定义作为基础新类的技术,新类的定义可以增加新的属性或新的方法,也可以使用父类的属性和方法,子类可以在父类的基础上额外增加新的数据和行为。
既然是继承就需要关键字extends
/**
*子类
*/
public class Man extends Human
{
public int age = 45;
static{
System.out.println("子类的静态代码块");
}
{
System.out.println("子类的动态代码块");
}
public Man(){
System.out.println("子类的无参构造代码块");
}
//this和super的使用
public String getName(){
return super.name;
}
/*public Man(){
super();
}*/
//运用super()调用父类的构造方法
/*public Man(){
super(20);
}*/
//调用父类的普通方法
public void eating(){
super.eat();
}
//方法重写
public String toString(){
return "Man:[名字"+name+"年龄"+age+"]";
}
//方法重写测试
public void eat(){
System.out.println("重写时候方法名必须相同");
}
public static void doing(){
System.out.println("静态方法不可以被重写");
}
/*public final void doing1(){
System.out.println("final修饰的方法不可以被重写");
}*/
public static void main(String[] args)
{
//创建父类对象,输出的是父类的属性
Human man = new Man();
//创建子类的对象,输出是子类的属性
//Man man = new Man();
//man.eating();
//System.out.println(man.name);
//测试属性的覆盖
System.out.println(man.age);
//System.out.println(man);
man.eat();
//man.doing();
//man.doing1();
}
}