java中的继承

   

继承是Java向对象程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

格式
class 父类{
}
class 子类 extends 父类{
}
通过代码了解下:
代码如下:
public class Test {

public static void main(String[] args) {

}

}

// 定义一个类:学生
class Student {
// 姓名
private String name;
// 年龄
private int age;
// 学生的特征:学校名
private String schoolName;

// get方法
public String getName() {
    return name;
}

// set方法
public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public String getSchoolName() {
    return schoolName;
}

public void setSchoolName(String schoolName) {
    this.schoolName = schoolName;
}

// 构造方法
public Student(String name, int age, String schoolName) {
    super();
    this.name = name;
    this.age = age;
    this.schoolName = schoolName;
}

// 无参构造方法
public Student() {
    super();
}

}

// 定义一个类:老师
class Teacher {
// 姓名
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 Teacher(String name, int age) {
    super();
    this.name = name;
    this.age = age;
}

public Teacher() {
    super();
}

}


–通过Student类和Teacher类,可以看到他们两者都有共同的成员变量,name和age,代码上也是重复的。我们可以把这部分共同的代码单独提出来,让后两者共用,这样就可以减少代码重复,也变得简洁。
这就用到JAVA类的一个特性——继承(extends)。将两段代码中相同的部分提取出来组成 一个父类(如:Person类):
代码如下:
public class Test {

public static void main(String[] args) {
    Student s = new Student();
    // 设值
    s.setName("小米");
    s.setAge(10);
    s.setSchoolName("城关小学");
    // 打印学生的信息
    System.out.println("学生的姓名:" + s.getName() + ",年龄:" + s.getAge() + ",学校是:" + s.getSchoolName());
    Teacher t = new Teacher();
    t.setName("李芳");
    t.setAge(26);
    // 打印老师的信息
    System.out.println("老师的姓名:" + t.getName() + ",年龄:" + t.getAge());
}

}

// 定义一个父类:人
class Person {
// 姓名
private String name;
// 年龄
private int age;

// get方法
public String getName() {
    return name;
}

// set方法
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, int age) {
    super();
    this.name = name;
    this.age = age;
}

public Person() {
    super();
}

}

// Student 继承 Person
class Student extends Person {

// 学生的特征:学校名
private String schoolName;

public String getSchoolName() {
    return schoolName;
}

public void setSchoolName(String schoolName) {
    this.schoolName = schoolName;
}

}

// Teacher 继承 Person
class Teacher extends Person {

}

—测试结果—
学生的姓名:小米,年龄:10,学校是:城关小学
老师的姓名:李芳,年龄:26


继承的优点:
1、提高了代码的复用性,代码也更加简洁。
2、后期维护性提高。

发表评论