Java 对象继承的抽象方法

Java 对象继承的抽象方法,java,inheritance,abstract,arrayobject,Java,Inheritance,Abstract,Arrayobject,我想知道是否有办法做到以下几点。我环顾四周,但什么也没找到 假设我们有一个抽象类Animal,另外两个类pet和free,其中pet扩展了Animal,free扩展了Animal。我创建了一个表动物[]a=新动物[2]; 我把这两个类的对象放在里面,如下所示: a[0] = new free(); a[1] = new pet(); 除了我的类中的抽象方法外,我假设这个方法在自由类中是这样的 class free extends Animal{ //other abstract ove

我想知道是否有办法做到以下几点。我环顾四周,但什么也没找到

假设我们有一个抽象类Animal,另外两个类pet和free,其中pet扩展了Animal,free扩展了Animal。我创建了一个表动物[]a=新动物[2]; 我把这两个类的对象放在里面,如下所示:

a[0] = new free();
a[1] = new pet();
除了我的类中的抽象方法外,我假设这个方法在自由类中是这样的

class free extends Animal{
    //other abstract overwritten methods
    public void take(){.....}
}
通过实例,我找到了objct是哪个类,然后我想从每个类调用unoveritenuniq方法 假设我有一个方法,它取一个动物对象,我想调用它的unig方法,而不是像这样抽象的overiten:

  private void Add_Classic(Animal c){
            if( c instanceof free)
            c.take();//here is my question how can i call this non abstract method?
else{
c.take1();
}
        }

take和take1不是抽象的方法我怎么称呼它们

你能提供更多细节吗?从内部免费呼叫与动物[]有什么关系?请添加更多细节和解释以澄清您的问题。你们想说take是动物类中的抽象方法,而你们在子类free中重写了这个方法吗?或者它只在子类free中,如果这是一个赋值,那么它就是一个糟糕的赋值。看来宠物和自由应该是动物的属性,而不是亚类。