多态的概念
多态即同一行为在不同的对象上会产生不同的形态,比如做同一道题,在不同的人身上就有不同的做法
多态是一种思想,要理解多态首先要理解继承,重写,向上转型,动态绑定
这里我先举个例子
我先创建一个父类对象Animal,
package Animal;
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void eat(){
System.out.println(this.name+"正在吃东西");
}
public void act(){
System.out.println(this.name+"正在行动");
}
}
然后创建两个子类dog和bird分别继承Animal,并重写父类的两个方法
package Animal;
public class dog extends Animal{
public dog(String name) {
super(name);
}
public void eat(){
System.out.println(this.name+"在吃骨头");
}
public void act(){
System.out.println(this.name+"在地上跑");
}
}
public class Bird extends Animal{
public Bird(String name) {
super(name);
}
public void eat(){
System.out.println(this.name+"在吃米粒");
}
public void act(){
System.out.println(this.name+"在空中飞");
}
}
实例化两个对象,这里我使用了向上转型,然后通过父类引用调用子类和父类重写的两个方法
package Animal;
public class Test {
public static void main(String[] args) {
Animal animal1=new dog("小狗");
Animal animal2=new Bird("小鸟");
animal1.eat();
animal2.eat();
animal1.act();
animal2.act();
}
}
运行结果
所以很明显,同样是eat方法,在不同的对象上表现却不同 ,在dog对象上是吃骨头,在bird上是吃米粒,另一个act方法同理