Java 多态数组是';行不通 package-finalperpractice; 公共类多态测试{ 公共空间功能(){ 系统输出打印项次(“1”); } 公共静态void main(字符串[]args){ 对象obj[]={new PolymorphicTest(),new A(),new B()}; 对于(int i=0;i
我不知道为什么Java 多态数组是';行不通 package-finalperpractice; 公共类多态测试{ 公共空间功能(){ 系统输出打印项次(“1”); } 公共静态void main(字符串[]args){ 对象obj[]={new PolymorphicTest(),new A(),new B()}; 对于(int i=0;i,java,Java,我不知道为什么obj[I]找不到function()。 我写了一个覆盖toString()的代码,它工作得很好,但是这个代码没有覆盖。因为obj是对象类型,对象类没有声明函数方法 您可以使用函数方法创建一个接口,并在所有类中实现该接口,只要您需要函数方法 那么 package finalpaperpractice; public class PolymorphicTest { public void function(){ System.out.println("1");
obj[I]
找不到function()
。
我写了一个覆盖
toString()
的代码,它工作得很好,但是这个代码没有覆盖。因为obj
是对象
类型,对象
类没有声明函数
方法
您可以使用函数
方法创建一个接口,并在所有类中实现该接口,只要您需要函数
方法
那么
package finalpaperpractice;
public class PolymorphicTest {
public void function(){
System.out.println("1");
}
public static void main (String [] args){
Object obj [] = {new PolymorphicTest(), new A(), new B()};
for (int i = 0; i < 3; i ++){
obj[i].function(); // error on this line
}
}
}
class A{
public void function(){
System.out.println("2");
}
}
class B{
public void function(){
System.out.println("3");
}
}
应该改成
Object obj
obj
错误消息是什么?你能把它添加到问题中吗?那么调用function()
的解决方案是什么取决于你的需求。在我的案例中,解决方案是什么正如我提到的,这取决于你的应用程序设计。无论如何,我提到的解决方案之一。非常感谢,你给出了一个方向。可以使用接口
或使用扩展
<Your Interface> obj