修饰符 class class_name extends extend_class { // 类的主体 }其中,class_name 表示子类(派生类)的名称;extend_class 表示父类(基类)的名称;extends 关键字直接跟在子类名之后,其后面是该类要继承的父类名称。例如:
public class Student extends Person{}Java 的继承通过 extends 关键字来实现,extends 的英文意思是扩展,而不是继承。extends 很好的体现了子类和父类的关系,即子类是对父类的扩展,子类是一种特殊的父类。从这个角度看,使用继承来描述子类和父类的关系是错误的,用扩展更恰当。
public class People { public String name; // 姓名 public int age; // 年龄 public String sex; // 性别 public String sn; // 身份证号 public People(String name, int age, String sex, String sn) { this.name = name; this.age = age; this.sex = sex; this.sn = sn; } public String toString() { return "姓名:" + name + "\n年龄:" + age + "\n性别:" + sex + "\n身份证号:" + sn; } }如上述代码,在 People 类中包含 4 个公有属性、一个构造方法和一个 toString() 方法。
public class Student extends People { private String stuNo; // 学号 private String department; // 所学专业 public Student(String name, int age, String sex, String sn, String stuno, String department) { super(name, age, sex, sn); // 调用父类中的构造方法 this.stuNo = stuno; this.department = department; } public String toString() { return "姓名:" + name + "\n年龄:" + age + "\n性别:" + sex + "\n身份证号:" + sn + "\n学号:" + stuNo + "\n所学专业:" + department; } }由于 Student 类继承自 People 类,因此,在 Student 类中同样具有 People 类的属性和方法,这里重写了父类中的 toString() 方法。
public class Teacher extends People { private int tYear; // 教龄 private String tDept; // 所教专业 public Teacher(String name, int age, String sex, String sn, int tYear, String tDept) { super(name, age, sex, sn); // 调用父类中的构造方法 this.tYear = tYear; this.tDept = tDept; } public String toString() { return "姓名:" + name + "\n年龄:" + age + "\n性别:" + sex + "\n身份证号:" + sn + "\n教龄:" + tYear + "\n所教专业:" + tDept; } }Teacher 类与 Student 类相似,同样重写了父类中的 toString() 方法。
public class PeopleTest { public static void main(String[] args) { // 创建Student类对象 People stuPeople = new Student("王丽丽", 23, "女", "410521198902145589", "00001", "计算机应用与技术"); System.out.println("----------------学生信息---------------------"); System.out.println(stuPeople); // 创建Teacher类对象 People teaPeople = new Teacher("张文", 30, "男", "410521198203128847", 5, "计算机应用与技术"); System.out.println("----------------教师信息----------------------"); System.out.println(teaPeople); } }运行程序,输出的结果如下:
----------------学生信息--------------------- 姓名:王丽丽 年龄:23 性别:女 身份证号:410521198902145589 学号:00001 所学专业:计算机应用与技术 ----------------教师信息---------------------- 姓名:张文 年龄:30 性别:男 身份证号:410521198203128847 教龄:5 所教专业:计算机应用与技术
class Student extends Person,Person1,Person2{…} class Student extends Person,extends Person1,extends Person2{…}
图 1 图形类之间的关系
本文链接:http://task.lmcjl.com/news/10603.html