多态
什么是多态?
多态就是同一个行为的不同表现形式。换句话说就是同一个方法因为对象的不同所产生不同的结果。
多态存在的条件:
- 继承
- 重写
- 父类引用指向子类对象
例:
public static void main(String[] args) {
//a是人的对象
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();
}
这样就会导致大量代码重复。因此采用多态。