我想将一个类扩展为多个其他类,例如在Java中扩展类
public class Ability extends Character
由于这个我在我的代码得到一个错误:
隐超构造字符()是不确定的。必须明确地调用另一个构造Defense.java
我的代码是:
public class Character {
int characterID;
double characterHealth;
public Character(int charID, double charHealth) {
characterID = charID;
characterHealth = charHealth;
}
}
public class Defense extends Character {
int armorClass;
int difficultyClass;
public Defense(int newAC, int newDC){
armorClass = newAC;
difficultyClass = newDC;
}
}
我不确定如何调用另一个构造。 如果有人能指出为什么以及如何去做。
嗯,看看我会尝试使用程序可以执行的自动生成的程序部分来做这件事。我给它一个去感谢。 什么是扩展关键字与:在C#中的比较?因为如果我记得:不需要使用超级方法,或者是:与扩展不一样? –
@VasaSerafin构造语义是不同的,因为只要定义一个没有参数的ctor,就不会自动为您生成* implicit * default(no-arg)。只要超类中没有默认的ctor,你就必须明确地调用其中一个 - 这就是Java的方式。 –
所以基本上你说的是超级是在C#中创建的,也只是在程序的后端?有没有一个混乱的方式来定义超级,因为目前,由于所有使用的变量,编码可能会变得很长。 也只是为了澄清,如果我要序列化Character对象,序列化是否会包含其他类? –