Java类的继承

2017-07-25 10:55刘妍东
科教导刊·电子版 2017年17期
关键词:子类继承

刘妍东

摘 要 “继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。

关键词 继承 java类 父类 子类

1知识引入

生活中继承的例子随处可见,如,父亲和儿子就是一种继承关系,父亲拥有房屋、股票、存款等财产,儿子可以继承这些财产并在此基础上拥有的自己的财产。如,车有车轮数、颜色、生产商等特性,自行车、小轿车、货车等可以继承这些特性,在此基础上也可以拥有自己的特性。

2抽象

我们已经学习过类的设计,在面向对象的程序设计中,也可以采用继承的机制来组织、设计系统中的类,可以使得程序结构清晰、降低编码和维护的工作量,提高程序开发的效率。

下面我们以设计具体的类为例,来引入继承的机制,如,某个培训机构需要一个“管理系统”来管理所有的人员,人员包括学生、教师、员工等,这需要我们建立3个类,学生类、教师类和员工类。

首先,学生类应该有:学号、姓名、性别、年龄、成绩等属性,选课等行为。教师类应该有:教师编号、姓名、性别、年龄、工资等属性,授课等行为。员工类应该有:员工编号、姓名、性别、年龄、岗位等属性,管理等行为。其中,3个类中都含有姓名、性别、年龄属性,代码出现了重复。有没有精简代码的好方法呢?

下面,我们通过java里面继承的机制来解决代码重复的问题。在java中我们把重复的属性抽象出来定义成一个父类。可以在父类基础上衍生出子类。

3代码实现

我们可以先定义一个父类Person类,把学生类、教师类、员工类的共同属性,姓名、性别、年龄放在Person类中。给每个属性合适的数据类型和名称。这样的话, 学生类、教师类、员工类就可以定义为Person类的子类来继承上述成员。

class Person{String name;String sex;ing age}

我们定义一个子类学生类Student继承Person类,extends是描述继承关系的关键字。这样子类就拥有了父类所有的成员变量和方法,除此之外它可以定义自己的特性和行为,如学号、成绩、选课。

public class Student extends Person{String stuNo;double grade;void elecCourse;

System.out.println("调用选课系统");}

同样,定义子类教师类Teacher继承Person类,Teacher类也拥有了Person类的成员。再定义自己的特性,教师编号、工资、授课等。这样子类即拥有了父类Person所有的成员,也拥有了自己的所有特性了。子类员工类Employee也可以使用同样的方法继承Person类。

public class Teacher extends Person{String teaNo;double salary;void teaching{System.out.println("调用授课系统");}

下面,我们通过对象验证一下吧。首先生成Student类的对象stu。Student类通过继承,拥有了Person类的所有成员,所以,我们也可以通过stu对象调用继承下来的name成员变量,赋值为“王芳”,调用继承下来的sex成员变量,赋值为“女”,也可以调用继承下来age成员变量,赋值为18。同样可以调用本类定义的stuNo学号成员变量,赋值为“142212401”,grade成绩成员变量,赋值为“80”,再调用本类定义的选课方法。最后通过输出语句,显示这个对象的所有属性值。运行结果包括:选课方法、姓名、性别、年龄、学号、成绩。

public class Test {public static void main(String[ ] args) {Student stu=new Student;stu.name=王芳;stu.sex=女;stu.age=18;stu.stuNo="142212401";stu.grade=80;stu.elecCourse;System.out.println("姓名:+stu.name+",性别:stu.sex+",年龄:"+stu.age+",学号:"+stu.stuNo+",成绩:"+stu.grade);}

运行结果:

调用选课系统

姓名:王芳,性别:女,年龄:18,学号:142212401,成绩:80.0

我们再生成Teacher类的对象tea。调用从Person类继承下来的name,sex,age,然后调用本类自身的成员变量teaNo,salary,调用授课方法teaching。

加上输出语句,显示对象所有属性。

通过结果我们同样可以看到,姓名、性别、年龄等都是在父类Person類中定义的成员变量,通过继承的方式,可以使子类也拥有父类的成员,同样子类也可以根据需要定义自己的成员。

4总结

从以上例子中,我们可以看出,继承是类之间的一种关系,通过继承,可以在已经存在的类的基础上,进行扩展,从而产生新的类。由继承而得到的类称为子类,被继承的类称为父类(或超类)。子类继承父类的属性和行为,并根据需要增加自己新的属性和行为。

继承,是不是很好理解。大家试试设计一下员工子类,让我们的系统更加完整吧。

猜你喜欢
子类继承
卷入Hohlov算子的某解析双单叶函数子类的系数估计
关于对称共轭点的倒星象函数某些子类的系数估计
面向对象的多版本传感器观测服务模式匹配方法
鲁迅小说对传统文学艺术的继承和创新
浅谈杜审言、杜甫的祖孙关系:推崇、继承、发展
块H矩阵新的子类
关于Java继承性的探讨