多态
什么是多态?
多态就是同一个行为的不同表现形式。换句话说就是同一个方法因为对象的不同所产生不同的结果。
多态存在的条件:
- 继承
- 重写
- 父类引用指向子类对象
例:
public static void main(String[] args) {Human a=new Human();getWho(a);Teacher b=new Teacher();getWho(b);Father c=new Father();getWho(c);getWho(new Father());}static void getWho(Human a) {a.write();}}
class Human{public void write() {System.out.println("I am human");}
}
class Father extends Human{public void write() {System.out.println("I am Father");}}class Teacher extends Human{public void write() {System.out.println("I am Teacher");}
由例可知我们由一个方法 getWho就可以包含其他子类。
这就是多态,通过一个方法因为对象不同而产生不同的结果。
假如不使用多态则需要为每一个对象创建一个方法。
像这样:
static void getWho(Human a) {a.write();}static void getWho(Father a) {a.write();}static void getWho(Teacher a) {a.write();}
这样就会导致大量代码重复。因此采用多态。