1.为什么需要继承?
现定义Teacher类和Student类:
class Teacher {
public static String school = "我的学校";
private String name;
private char gender;
private String address;
private String department;//部门
private String salary;//工资
}
class Student {
public static String school = "我的学校";
private String name;
private char gender;
private String address;
private String id;//学号
private String className;//班级
}
观察并比较这两段代码,不难发现,程序中出现较多重复代码,若还要给Teacher和Student增加age等属性,过程会很拖沓冗杂。
而在现实生活中,Teacher和Student有共同的特征、属性,这是他们的共性。想要解决多个不同类具有的共性问题,只能依靠继承的概念来完成。
2.继承机制
继承是面向对象编程的重要特性之一。
【继承机制】:
指在由一般类和特殊类形成的“特殊类——一般类”之间的类结构中,把一般类和所有特殊类的对象实例都共同具有的属性和操作一次性地在一般类中进行的定义,在特殊类中不再重复定义一般类中已经定义的属性和操作,特殊类自动地拥有一般类中定义的属性和操作。
特殊类的对象拥有其一般类的对象的全部属性与操作(除非进行限制),称作特殊类对一般类的继承。
继承表现了类之间的纵向关系,类似于儿子继承父亲的一些特征。
【继承结果】
- 子类继承父类的成员变量,使得子类对象具有父类的特征;
- 子类从父类继承方法,使得子类具有父类相同的行为。
继承需要符合“特殊——一般”的关系,父类更通用,子类更具体。
例如:“高铁是交通工具”。
此处的高铁是特殊类,交通工具是一般类,反过来“交通工具是高铁”是说不通的。
3.继承的特征
- 继承关系是传递的;
- 继承简化了人们对客观事物的认识和描述,能够清晰体现相关类之间的层次结构关系;
- 继承提供了软件复用功能,减少代码量和数据的冗余度,增加了程序的重用性;
- 减少了模块间的接口和界面,增强了软件的易维护性;
- 提供多重继承机制;
Java出于安全性和可靠性的考虑,类之间仅支持单继承,而通过接口机制来实现多重继承。
Object类是所有类的根类,在Java中,所有类都直接或间接地继承了Object类。
例如:
下面代码中,类Person的父类为Object类。
class Person {
private String name;
private char gender;
private String address;
//省略其他代码
}
4.实现继承关系
更新中…