连云港网站推广优化,电子商务系统规划方案,建设工程招标投标网,哪些网站设计好多态基本知识思维导图 多态的代码实现#xff0c;注意父类对象引用指向子类对象引用#xff08;向上转型#xff09;的方法#xff0c;父类就可以调用子类重写的方法和派生的方法#xff0c;但不能调用子类特有的方法#xff1a;
class Animal {public void makeSound()…多态基本知识思维导图 多态的代码实现注意父类对象引用指向子类对象引用向上转型的方法父类就可以调用子类重写的方法和派生的方法但不能调用子类特有的方法
class Animal {public void makeSound() {// 基类方法System.out.println(Animal makes a sound);}
}class Dog extends Animal {Overridepublic void makeSound() {// 子类方法重写System.out.println(Dog barks);}public void playBall() {System.out.println(Dog likes playing balls);}
}class Cat extends Animal {Overridepublic void makeSound() {// 子类方法重写System.out.println(Cat meows);}
}public class Main {public static void main(String[] args) {// Example 1: 向上转型// 父类对象引用指向子类对象引用向上转型/自动转型/隐式转型Animal animal1 new Dog(); Animal animal2 new Cat();// 使用父类对象调用子类重写的方法animal1.makeSound(); // 调用子类Dog的重写方法输出 Dog barksanimal2.makeSound(); // 调用子类Cat的重写方法输出 Cat meows// Example 2: 向下转型需要强制类型转换// instansof: 判断一个对象是不是一个类的实例if(animal1 instanceof Dog){Dog dog (Dog)anotherAnimal;dog.playBall();}}
}
上面说父类无法调用子类特有对象但可以通过向下转型实现如Example2实现。