class Person{

   String name;

   int age;

   void introduce(){

   System.out.println(" 我的名字是 "+ name + " , 我的年龄是" + age);

   }

}

---------


/*从子类这个introduce看它的定义方法跟父类的introduce的定义方法是一样的

void返回值类型都是空,函数名名都是introduce 参数列表也都是空 只是方法体不太一样

这就是复写 或者覆盖 或者叫重写


复写(override)也被称之为覆盖或者重写

1、在具有父子关系的两个类当中

2、父类和子类当中各有一个函数,这两个函数的定义(返回值类型,函数名和参数列表)完全相同

*/

class Student extends Person{

   String address;

   void introduce(){

   //消除第一行冗余代码 使用super 调用introduce 即 super.introduce();

   System.out.println("我的姓名是" + name + "我的年龄是" + age );

   //super.introduce();

   System.out.println("我的家在" + address);

   }

}

---------


class Test{

   public static void main (String args[]){

   Student s = new Student();

   s.name = "张三";

   s.age = 20;

   s.address = "北京";

   s.introduce();


   Person p = new Person();

   p.name = "李四";

   p.age = 120;

   p.introduce();

   }

}