我创建了一个名为 Courrier
的父类public class Courrier {
private double poid;
private boolean expr;
String ad;
private char z ;
public Courrier(double poid, boolean expr, String ad, char z) {
this.poid = poid;
this.expr = expr;
this.ad = ad;
this.z = z;
}
public double getPoid() {
return poid;
}
public boolean isExpr() {
return expr;
}
public String getAd() {
return ad;
}
public char getZ() {
return z;
}}
和两个子类都包含一个名为affranchir()
的方法
然后有一个测试:
public class Test {
public static void main(String[] args) {
Courrier[] T = new Courrier[4];
T[0] = new Lettre(200, true, "London", 'C', "A3");
T[1] = new Colis(3000, false, "Barcelone", 'B', 50);
T[2] = new Lettre(500, false, "Béchar", 'A', "A4");
T[3] = new Colis(150, true, "New york", 'C', 175);
double tarif=0;
for (int i = 0; i < T.length; i++) {
System.out.println(T[i].affranchir());
tarif+=T[i].affranchir();
}
System.out.println(tarif);
}}
它有一个问题
对于 Courrier 类型,方法affranchir()
未定义
我想让它在没有铸造的情况下工作有没有可能的方法呢?
答案 0 :(得分:0)
您已经创建了父类Courrier
的数组 Courrier[] T = new Courrier[4];
然后你通过该对象调用子类的方法
T[i].affranchir();
这是唯一的错误。而不是让父类的Object生成子类的Object然后调用该方法。它肯定会奏效。 谢谢
答案 1 :(得分:0)
向courrier添加抽象方法
public abstract class Courrier {
/* code */
public abstract void affranchir();
/* code */
}