多态对于程序初学者来说是一道不小的槛。与递归类似,不管是书中还是老师授课,都把其讲得神乎其神,让读者觉得一头雾水,莫名其妙。但我认为,多态实际上非常简单,学习的难点在于在接触多态之前,大脑中并没有一个直观的印象。在此,我就给大家实际示例什么是多态。
我们首先定义一个接口,
package org.tny.test;
public interface People {
public void say();
}
接着我们定义两个实现类,
package org.tny.test;
public class Lilei implements People {
@Override
public void say() {
System.out.println("Hi,how are you?");
}
}
package org.tny.test;
public class Hanmeimei implements People {
@Override
public void say() {
System.out.println("Fine,Thank you ,and you?");
}
}
最后,我们编写测试代码,
package org.tny.test;
public class Tester {
public static void main(String[] args) {
People people;
people = new Lilei();
people.say();
people = new Hanmeimei();
people.say();
}
}
可见,测试代码中都是调用people的say方法。
输出为:
Hi,how are you?
Fine,Thank you ,and you?
虽然都是同样的people的say方法,但是输出结果却不一样,这就是多态。