一、简介
继承顾名思义就是一个类(子类)继承另一个类(父类)。使其具有另一个类的相同的方法。
Java继承分为单继承和多重继承。(后续讲)
从下面两个例子中我们不难看出,两个类无论是方法还是属性都十分相似。因为学生本身也是人。
public class Person {
private String name; //姓名
private int age; //年龄
private String sex; //性别
public Person() {
}
//添加get set 方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
}
public class Student {
private String name;
private int age;
private String sex;
private String student_id; //学号
public Student() {
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setStudent_id(String student_id) {
this.student_id = student_id;
}
public String getStudent_id() {
return student_id;
}
}
如果每一个类都需要如此大费周章的写一些属性几乎相同,而且功能也差不多。那么效率太低了。于是就有了今天要降低内容——继承。
二、思路
我们可以让学生类(子类),继承(extends)人这个类(父类)。
处理后的代码如下(只需要在类的后面加上 extends +父类名)即可。并且删除冗余代码。
public class Student extends Person{
private String student_id; //学号
public Student() {
}
public void setStudent_id(String student_id) {
this.student_id = student_id;
}
public String getStudent_id() {
return student_id;
}
}
相较于最上面的学生类(子类)的方法,至少从代码的数量上减少了许多。
三、测试总结
新建一个测试类Test
public class Test {
public static void main(String[] args) {
Student student = new Student();
student.setName("是小王同学呀");
System.out.println(student.getName());
}
}
执行的效果如下:
在Student类(子类)中并没有name这个属性。因为Student类继承了Person类(父类),Person类中有相对应的属性和方法。因此Student类继承之后也拥有了属性和方法。也同样可以使用父类中的属性以及方法。
Java中关于继承性的规定,
1、一个类可以被多个子类继承
2、Java中类的单继承性,一个类只能有一个父类。
3、子父类是相对的概念。
4、子类直接继承的父类,成为,直接父类。间接继承的父类称之为,间接父类。
5、子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法。