使用数组 class 抽象的对象
Using array the objects the class abstract
我有1个问题,我的方法打不开,我不好郁闷。
我有3个class,1个是抽象的
public abstract class Canideos {
public abstract String ladrar();
}
public class Gato extends Canideos{
@Override
public String ladrar() {
String ladrar="miau miau";
return ladrar;
}
public String miar(){
String mi="miau a miau";
return mi;
}
}
我的驱动器是这样的:
Canideos cani[]= {new Cao(), new Gato()}; // it works :)
for(int i=0;i<2;i++){
System.out.println(cani[i].ladrar());
}
String a;
我的问题是这样的:/
a = (String) cani[1].Gato().miar();
a = cani[1].miar();
我无法打开方法 miar() class Gato。
将超类实例向下转换为子类实例的语法类似于常规转换:
Gato gato = (Gato) cani[1];
a = gato.miar();
或者等价地,只是:
a = ((Gato) cani[1]).miar();
请注意第二种情况中的附加括号。它们仅用于优先级目的,否则它将被解析为 (Gato) (cani[1].miar())
试图将 miar
的结果转换为 Gato
.
我有1个问题,我的方法打不开,我不好郁闷。 我有3个class,1个是抽象的
public abstract class Canideos {
public abstract String ladrar();
}
public class Gato extends Canideos{
@Override
public String ladrar() {
String ladrar="miau miau";
return ladrar;
}
public String miar(){
String mi="miau a miau";
return mi;
}
}
我的驱动器是这样的:
Canideos cani[]= {new Cao(), new Gato()}; // it works :)
for(int i=0;i<2;i++){
System.out.println(cani[i].ladrar());
}
String a;
我的问题是这样的:/
a = (String) cani[1].Gato().miar();
a = cani[1].miar();
我无法打开方法 miar() class Gato。
将超类实例向下转换为子类实例的语法类似于常规转换:
Gato gato = (Gato) cani[1];
a = gato.miar();
或者等价地,只是:
a = ((Gato) cani[1]).miar();
请注意第二种情况中的附加括号。它们仅用于优先级目的,否则它将被解析为 (Gato) (cani[1].miar())
试图将 miar
的结果转换为 Gato
.