Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将子[]传递给接受父[]的方法。为什么?_Java_Arrays_Polymorphism - Fatal编程技术网

Java 无法将子[]传递给接受父[]的方法。为什么?

Java 无法将子[]传递给接受父[]的方法。为什么?,java,arrays,polymorphism,Java,Arrays,Polymorphism,为什么在将子[]传递到接受父[]的方法时出现编译错误 但是,我可以定义Parent[]的一个变量,并为其分配一个值Child[] 凯西·塞拉图书仿制药章节说它应该可以正常工作 package com.collections; import java.util.List; import java.util.ArrayList; class AnimalDoctor{ public void checkAnimals(Animal[] animals){ for(Anim

为什么在将子[]传递到接受父[]的方法时出现编译错误

但是,我可以定义Parent[]的一个变量,并为其分配一个值Child[]

凯西·塞拉图书仿制药章节说它应该可以正常工作

package com.collections;

import java.util.List;
import java.util.ArrayList;

class AnimalDoctor{
    public void checkAnimals(Animal[] animals){
        for(Animal a: animals){
            a.check();          
        }
    }
}
abstract class Animal {
    public abstract void check();
}
class Dog {
    public void check(){
        System.out.println(" Check Dog");
    }
}
class Cat {
    public void check(){
        System.out.println(" Check Cat");
    }
}
class Bird {
    public void check(){
        System.out.println(" Check Bird");
    }
}

public class TestGenerics {

    public static void main(String[] args){ 
        class Parent{}
        class Child extends Parent{}
        Parent[] array = new Child[11];                 //no error in assigning array of child elements to Parent[]

        Dog[] dogs = { new Dog(), new Dog()};
        Cat[] cats = { new Cat(), new Cat(), new Cat()};
        Bird[] birds = {new Bird()};

        AnimalDoctor doctor = new AnimalDoctor();
        doctor.checkAnimals(dogs);      //compilation error - why?
        doctor.checkAnimals(cats);      //compilation error - why?
        doctor.checkAnimals(birds);     //compilation error - why?
    }
}

我的“狗”、“猫”和“鸟”类缺少扩展动物。

类“猫”、“狗”和“鸟”应扩展动物类。