面向对象中的继承关系可以帮我们减少代码冗余,使得代码更加简洁。
目录
继承性的好处
1. 减少代码冗余,提高代码的复用性
2. 便于功能的拓展
3. 为多态性的使用提供了前提
继承性的说明
一旦子类 A 继承父类 B 以后,子类 A 中就获取了父类 B 中声明的属性和方法。
特别的,父类中声明为 private 的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。
子类继承父类后,也可以声明自己特有的属性或方法,实现功能的拓展。
注:子类和父类的关系,不同于子类和集合的关系。
继承性使用的关键字:extends
Java中继承性的规定
1. 一个类可以被多个子类继承。
2. Java中类的单继承性,一个类只能有一个父类。
3. 子父类是相对的概念。
4. 子类直接继承父类,称为 直接父类。间接继承的父类称为 间接父类。
5. 子类继承父类以后,就获取了直接或间接父类中声明的属性和方法。
6. 所有 java 类(除java.lang.Object类)都直接或间接继承于java.lang.Object类,如果我们没有显式的声明一个类的父类的话,则此类继承于 java.lang.Object类。
代码举例
父类 Person
public class Person {
private int age;
public String name;
public Person() {
System.out.println("这是一个Person类");
}
public Person(String name,int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void walk() {
System.out.println("人可以走路");
}
}
子类 Student
public class Student extends Person { // 继承 Person 类
public String major;
public Student() {
}
public Student(String name,String major) {
this.major = major;
this.name = name;
}
public String getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
}
继承测试
public class testExtends {
public static void main(String[] args) {
Student student = new Student("小明","数据");
System.out.println(student.getName());
student.walk();
}
}
>>> 这是一个Person类
小明
人可以走路
我们可以看到,Student 类中没有定义 name 属性与 walk 方法,但是继承 Person 类后,Student 类就拥有了父类的属性与方法。