Java 中的继承就是在已经存在类的基础上进行扩展,从而产生新的类。已经存在的类称为父类、基类或超类,而新产生的类称为子类或派生类。在子类中,不仅包含父类的属性和方法,还可以增加新的属性和方法。
Java 中子类继承父类的语法格式如下:
class 子类 extends 父类{
}
范例:
1.创建人类 Person,并定义 name、age、sex、phone 属性,代码如下:
package extendsTest01;
public class Person {
public String name;
public int age;
public String sex;
public int phone;
public Person(String name,int age,String sex,int phone){
this.name=name;
this.age=age;
this.sex=sex;
this.phone=phone;
}
public String toString(){
return "姓名:"+name+"\n年龄"+age+"\n性别:"+"\n电话:"+phone;
}
}
2.创建 Person 类的子类 Student 类,并定义 stuNo 和 department 属性,代码如下:
package extendsTest01;
public class Student extends Person{
private int stuNo;//学号
private String department;//所学专业
public Student(String name,int age,String sex,int phone,int stuNo,String department){
super(name,age,sex,phone);//调用父类中的构造方法
this.stuNo=stuNo;
this.department=department;
}
public String toString(){
return "姓名:"+name+"\n年龄"+age+"\n性别:"+sex+"\n电话:"+phone+"\n学号:"+stuNo+"\n专业:"+department;
}
}
3.创建 People 类的另一个子类 Teacher,并定义 tYear 和 tDept 属性,代码如下:
package extendsTest01;
public class Teacher extends Person {
private int tYear;//教龄
private String tDept;//所教专业
public Teacher(String name, int age, String sex, int phone,int tYear,String tDept) {
super(name, age, sex, phone);//调用父类构造方法
this.tYear=tYear;
this.tDept=tDept;
}
public String toString(){
return "姓名:"+name+"\n年龄"+age+"\n性别:"+sex+"\n电话:"+phone+"\n教龄:"+tYear+"\n所教专业:"+tDept;
}
}
4.编写测试类 PeopleTest,在该类中创建 People 类的不同对象,分别调用它们的 toString() 方法,输出不同的信息。具体的代码如下:
package extendsTest01;
public class PeopleTest {
public static void main(String[] args) {
//创建Student对象
Student stu=new Student("妲己",14,"女",123456789,100002,"蹲草丛");
System.out.println("----------学生信息----------");
System.out.println(stu);
//创建teacher类对象
Teacher tea =new Teacher("蔡文姬",14,"女",123456789,2,"弹弹弹");
System.out.println("----------教师信息----------");
System.out.println(tea);
}
}
运行结果:
单继承:
Java 不支持多继承,只允许一个类直接继承另一个类,即子类只能有一个直接父类,extends 关键字后面只能有一个类名。
一个类只能有一个直接父类,但是它可以有多个间接的父类。例如,Student 类继承 Person 类,Person 类继承 Person1 类,Person1 类继承 Person2 类,那么 Person1 和 Person2 类是 Student 类的间接父类