先看一段代码:
class Animal{
void sing(){
System.out.println("唱歌");
}
}
class Dog extends Animal{
void sing(){
System.out.println("汪汪唱歌");
}
}
class Cat extends Animal{
void sing(){
System.out.println("喵喵唱歌");
}
}
public class Test{
public static void main(String[] args){
Cat c=new Cat();
function(c);
Dog d=new Dog();
function(d);
}
public static void function(Animal c){
c.sing();
}
}
怎么理解多态?从字面上看就是一个类,多种形态,它是一种编程技巧而不是写代码的格式。利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理,如上例中,多种动物的sing();方法。首先,定义一个方法,接收各种动物参数,通过向上转型接收,根据参数调用各自的sing();方法。
这只是一个简单的例子描述多态,通过多态处理能够很好解决代码冗余的问题,同时也已于维护,可以加入任何继承父类的子类对象,而父类方法也无需修改。