public class person { String name; int age; public String introduce(){ return ("I am a person!"); }} class student extends person { public student(String name,int age)t super.name=name; super.age=age; } @Override public String introduce() return ("I am a student!");}} class worker extends person [ public worker(String name,int age)( super.name=name; super.age=age; } @Override public String introduce() return("lam a worker!"); 1.试分析以上代码体现了面向对象程序设计的何种特点,这种特点对软件测试有何种影响。 2.试设计针对以上代码的测试脚本。 (10分)
时间: 2024-03-25 17:35:56 浏览: 79
classy.js:一个简单的 Javascript 继承实现
1. 以上代码体现了面向对象程序设计中的继承和多态特点。继承体现在子类 student 和 worker 都继承了父类 person 的属性和方法;多态体现在子类 student 和 worker 分别重写了父类的 introduce 方法,实现了不同的行为。对软件测试的影响是,需要对父类和子类的方法进行单元测试,以确保继承和多态的正确性和稳定性。
2. 测试脚本设计如下:
```
// 测试父类 person 的 introduce 方法
@Test
public void testPersonIntroduce() {
person p = new person();
assertEquals("I am a person!", p.introduce());
}
// 测试子类 student 的 introduce 方法
@Test
public void testStudentIntroduce() {
student s = new student("Tom", 18);
assertEquals("I am a student!", s.introduce());
}
// 测试子类 worker 的 introduce 方法
@Test
public void testWorkerIntroduce() {
worker w = new worker("Jerry", 30);
assertEquals("I am a worker!", w.introduce());
}
```
以上测试脚本分别测试了父类和子类的 introduce 方法,使用 assertEquals 方法来判断实际结果和期望结果是否一致。如果测试未通过,则需要检查代码实现是否正确,并进行修正。
阅读全文