package d;
class person{//创建父类Person
String name;
String sex;
int age;
int score;//3~6行:定义父类中的变量
void getInfo(String n,String s,int a,int m) {
name=n;
sex=s;
age=a;
score=m;
}//7~12行:定义方法getInfo(),获取个人信息
void showInfo() {
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
System.out.println("成绩:"+score);
}//13~18行:定义方法showInfo(),显示个人信息
}
public class student extends person {//创建子类Student继承父类Person
String id;
String school;//23~24行:定义子类变量
void setInfo(String num,String school_name) {
id=num;
school=school_name;
}//25~28行:定义方法setInfo(),获取学生的信息
void setInfo() {
System.out.println("学校:"+school);
System.out.println("学号:"+id);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("年龄:"+age);
System.out.println("成绩:"+score);
}//29~36行:用方法重写的方式,重写的方法showInfo(),输出学生信息
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("第一个人的信息");
student du=new student();
du.name="婷儿";
du.sex="女";
du.age=20;
du.score=96;
du.showInfo();//43~47行:创建属于类student的对象
System.out.println();
student li=new student();//42~49行:调用方法,输入和显示第一个学生的信息
System.out.println("第二个人的信息");
li.getInfo("朱儿","女",20,85);
li.setInfo("002","国足");
li.setInfo();//51~53行:调用对象,输入和显示第二个学生的信息
}
}
运行结果:
知识要点:
1、方法重写:
a.方法重写是在继承中,子类重新定义父类的成员方法,使得新定义的方法具有和父类的成员方法相同的方法名、参数和返回值,但是具有不同的方法体。
b.方法重写可以实现同一方法在不同子类中的不同操作。
c.通过方法重写,子类对象只会调用子类中定义的方法,而不会调用父类中的同名方法。
2、成员变量的隐藏
在子类中定义与父类成员同名的变量。则可以实现该父类成员变量在子中的隐藏。
3、super关键字
在子类中有时需要使用父类的成员变量和成员方法,可以通过super关键字来实现。