java 单元测试重写静态方法
时间: 2023-11-18 09:56:20 浏览: 234
在Java中,重写(Override)是指子类重新定义了父类中已有的方法,使得子类可以使用自己的实现来替代父类的实现。但是,Java中的静态方法是属于类的,而不是属于对象的,因此无法被子类重写。因此,在单元测试中,如果需要测试一个静态方法,可以直接调用该静态方法,而不需要考虑重写的问题。如果需要测试一个非静态方法,可以使用JUnit等单元测试框架来进行测试。
相关问题
Java编写测试多态性程序。首先编写动物类Animal,成员有:私有的静态种类名字字段kind及公共的get和set方法,公共的呼吸和行走方法及构造方法。然后分别编写继承动物类的鸟类Bird和马类Horse,除定义构造方法外,这些类均重写父类的行走方法。最后编写主类,依次构建各个上转型对象,调用其呼吸和行走等方法,得到不同结果。运行界面如图12-1所示:
下面是Java编写的实现:
Animal类:
```java
public class Animal {
private static String kind;
public Animal(String kind) {
this.kind = kind;
}
public static String getKind() {
return kind;
}
public static void setKind(String kind) {
Animal.kind = kind;
}
public void breath() {
System.out.println(kind + "正在呼吸");
}
public void walk() {
System.out.println(kind + "正在行走");
}
}
```
Bird类:
```java
public class Bird extends Animal {
public Bird(String kind) {
super(kind);
}
@Override
public void walk() {
System.out.println(getKind() + "正在飞行");
}
}
```
Horse类:
```java
public class Horse extends Animal {
public Horse(String kind) {
super(kind);
}
@Override
public void walk() {
System.out.println(getKind() + "正在奔跑");
}
}
```
主类:
```java
public class Main {
public static void main(String[] args) {
Animal animal1 = new Animal("动物");
Bird bird1 = new Bird("鸟");
Horse horse1 = new Horse("马");
Animal[] animals = {animal1, bird1, horse1};
for (Animal animal : animals) {
animal.breath();
animal.walk();
System.out.println("-----");
}
}
}
```
运行结果:
```
动物正在呼吸
动物正在行走
-----
鸟正在呼吸
鸟正在飞行
-----
马正在呼吸
马正在奔跑
-----
```
以上程序实现了多态性,可以看到不同的动物对象调用walk()方法得到了不同的结果。
阅读全文