//继承课件(子类继承父类的属性和方法)(extends链接)
package com.jicheng0920;
//人
public class Person {
private String name;
private int age;
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 Person(String name)
{
this.name=name;
System.out.println("实例化父类...........");
}
//方法
public String getInfo()
{
return "name="+name+"age="+age;
}
}
package com.jicheng0920;
//关键字:extends 继承
public class Student extends Person//继承,表示Student(子类) 继承了 Person(父类)
{
private String school;
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
//构造方法
public Student(String name)
{
//显示调用父类的构造方法
//super,必须在方法的第一句
super(name);//显示调用父类构造方法
// this();//表示不在调用父类构造方法
System.out.println("实例化子类...........");
}
//方法
public String getInfo()
{
//子类调父类的方法
//super.代表父类的实例
return "父类信息"+super.getInfo()+"子类school="+school;
}
}
package com.jicheng0920;
public class test0920 {
//总结:
// 1.java支持单继承,不支持多继承。子类只能有一个父类,但是父类可以有多个字类。
// 2.子类自动继承父类公开的成员。
// 3.子类不可以继承构造方法和父类中私有的方法和属性。
// 4.子类可以扩展定义自己的成员
// 5.java.lang.object是所有类的根父类
//子类在实例化子类之前早已默认实例化父类。
//方法的重写 覆盖
// 1.必须和父类的方法具有相同的方法名称、相同的参数列表、返回值类型。
// 2.子类的覆盖方法不能有比父类更严格的访问权限。
public static void main(String[] args) {
// TODO Auto-generated method stub
//父类
Person p=new Person("456");
//p.setName("张三");
p.setAge(18);
System.out.println(p.getInfo());
//子类
//子类在实例化子类之前早已默认实例化父类。
Student s=new Student("小李");
// s.setName("小明");
s.setAge(100);
s.setSchool("家里蹲大学");
System.out.println(s.getInfo());