子类继承父类,父类就相当于子类的共性,子类相当于父类的特性,继承之后再重写子类方法(给予子类更多操作的可能),子类还能利用super调用父类
可以说子类的操作基于父类,但又能在父类的根基上发展出更多可能性
通过查找共性编写父类,通过查找特性编写子类
人类类
public class Human {
private String name;
private String age;
//构造方法
public Human() {}
public Human(String name,String age) {
this.setName(name);
this.setAge(age);
}
//age与name的get,set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
//父类方法
public void work() {
System.out.printf("这是父类的方法");
}
}
学生类
public class Student extends Human {
//构造方法
public Student() {}
public Student(String name, String age) {
super(name,age);//调用父类构造方法传递参数
//这里我尝试过使用this.setName(getName())方法,最后输出是null,因为name是private类型,我们可以通过getname()得到name,但是我们的子类无法继承父类的私有成员变量,即学生类中是没有name变量的,所以setname()不成功,输出null
}
//重写父类方法
public void work() {
System.out.println("学生爱读书");
}
}
老师类
public class Teacher extends Human {
//构造方法
public Teacher() {}
public Teacher(String name, String age) {
super(name,age);
}
//重写父类方法
public void work() {
System.out.println("老师爱教书");
}
}
测试类
//自己尝试创建对象,赋值,调用方法(父类,子类都要尝试)
public class test {
public static void main(String[] args) {
System.out.println("调用setName方法(顺序:学生类,老师类)");
Student s=new Student("学生","15");
System.out.println(s.getName());
Teacher t=new Teacher("老师","35");
System.out.println(t.getName());
......
}
}