多态是面向对象的核心
它允许不同对象对同一消息做出不同的响应。
多态的必要条件:
1.要有继承
2.父类的引用指向子类对象 (比如你参数定义的是Animal类,传进来的参数可以多种多样,但必须是Animal的子类)
父类当形参,子类当实参
重写就是一种多态的体现
class Animal{
public void sound(){
System.out.println("Animal make a sound")
}
}
class Dog extends Animal{
@Override
public void sound(){
System.out.println("dog barks")
}
}
class Cat extends Animal{
@Override
public void sound(){
System.out.println("Cat meows")
}
}
public class Main{
public static void main(String[] args){
Animal dog = new Dog()//父类引用指向子类对象
Animal cat = new Cat()//父类引用指向子类对象,多态
}
}