Это также означает, что вы можете назначить
JPanel mypanel = new WavPanel();
с тех пор, как вы расширили JPanel пользовательскими / дополнительными функциями и почему? Потому что WavPanel - это JPanel. Однако вы не можете вызывать методы, которые реализованы в классе WavPanel.
Эта концепция называется полиморфизмом.
Если у вас есть 3 разных класса, которые все наследуют методы / атрибуты от суперкласса с именем Animal, который предоставляет общие методы, скажем, «Run», «Walk», «Eat» и т. Д., Вы можете обрабатывать разные типы объектов в цикле for. потому что животные, которые расширяют этот класс «животных», являются животными.
Dog myDog = new Dog();
Horse myHorse = new Horse();
Cat myCat = new Cat();
ArrayList<Animal> myAnimals = new ArrayList<Animal>();
myAnimals.add(myDog);
myAnimals.add(myHorse);
myAnimals.add(myCat);
for (Animal animal : myAnimals) {
animal.run();
}
В этом примере предполагается, что вы создали класс Animal.