package liu0920;
//继承
public class Person {
//属性 姓名和年龄
private String name;
private int age;
//无参构造方法
// public Person()
// {
//
// }
public Person(String name)
{
System.out.println("实例化父类=李四");
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getInfo()
{
return "name:"+name+"age:"+age;
}
}
package liu0920;
//学生,做为人的子类
//extends继承
//1.java 支持单继承,不支持多继承:子类只能有一个父类,父类可以有多个子类
//2.子类自动继承父类公开的成员
//3.子类不能继承父类私有的成员和构造方法
//4.子类可以扩展定义自己的成员
//5.java.lang.objuct是所有类的根父类
public class Student extends Person{
//属性
private String school;
//构造方法
public Student()
{
//首先要去实例化父类,默认调用父类的默认的无参的构造方法
//显示调用父类的构造方法,必须在代码的第一句
super("李四");//实例化父类
System.out.println("实例化子类");
}
//成员方法
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
//方法的重写 覆盖
//1.必须和父类的方法具有相同的方法名称,参数列表和返回值类型
//2.子类的覆盖方法不能有比父类的更严格的访问权限控制(权限修饰符)
public String getInfo()
{
//子类调父类方法
//super 代表父类的实例
return "父类的信息:"+super.getInfo()+"子类的信息school="+school;
}
}
package liu0920;
public class Ceshi_person {
public static void main(String[] args) {
//测试继承
//父类
// Person p=new Person();
// p.setName("张三");
// p.setAge(30);
// System.out.println("人的信息是"+p.getInfo());
//
//子类
Student s=new Student();
//s.setName("小明");
s.setAge(20);
s.setSchool("清华大学");
System.out.println("学生的信息是"+s.getInfo());
}
}
