类和子类中的Java Atribute
我有一个子类MappaFermi和属性mappaName(从枚举中选择)的类Mappa 我试图用构造函数MappaFermi()编写一个测试,但似乎无法正确编写类和子类中的Java Atribute,java,class,attributes,subclass,Java,Class,Attributes,Subclass,我有一个子类MappaFermi和属性mappaName(从枚举中选择)的类Mappa 我试图用构造函数MappaFermi()编写一个测试,但似乎无法正确编写 public class Mappa { private Name mappaName; public Mappa (Name mappaName){ this.mappaName=mappaName; ... } } public class MappaFermi exten
public class Mappa {
private Name mappaName;
public Mappa (Name mappaName){
this.mappaName=mappaName;
...
}
}
public class MappaFermi extends Mappa {
public MappaFermi(Name mappaName) {
super(mappaName);
}
}
public enum Name {
FERMI, GALILEI, GALVANI
}
我尝试了eclipse给出的所有建议,但仍然得到了一个错误
public class MappaFermiTest {
@Test
public void testMappaFermi() {
Mappa mappa = new MappaFermi(Name.FERMI);
assertNotNull(mappa);
}
@Test
public void testMappaFermi() {
Mappa mappa = new MappaFermi();
assertNotNull(mappa);
}
}
如果要使用
新的MappaFermi()
,必须定义无参数构造函数。这是默认构造函数,任何没有其他构造函数的类都将隐式地拥有一个无参数构造函数。但是,只要使用参数定义构造函数,比如Mappa(Name mappaName)
,no-arg默认构造函数就不再可用,必须显式定义
public MappaFermi() {
super(null); // or whatever is a good 'default' name
}
另外,测试assertNotNull(mappa)代码>紧接着Mappa Mappa=new MappaFermi(无论什么)
是毫无意义的,因为此时它不可能是空的。这里有一些错误:
-同名的三种方法testMappaFermi
测试可以在一个方法中完成,或者如果确实需要三个方法,可以重命名这些方法
-第二个测试写得不正确。什么是有效的:
Name mappaName = Name.FERMI;
Mappa mappa = new MappaFermi(mappaName);
-第三个测试使用新的MappaFermi()
,没有定义无参数构造函数。
要在构造函数中放入参数,或编写无参数构造函数,如下所示:
public MappaFermi() {
super(Name.FERMI);
}
错误是什么?只应编译第一个测试用例-但您还有3个同名的方法,这也表明存在问题。@user3707125构造函数是undefined@Zelldon不,我并没有同时写所有的,这只是为了展示我所做的,所以第一个案例应该是可行的。是否已导入枚举和其他类?