多态是为了是程序具有更好的扩展性,并可以对类进行通用的处理。在面向对象语言中,接口的多种不同的实现方式即为多态!那么这个是怎样体现的呢?
我们先看一段程序:
package stduy;
abstract class Animal{
abstract void eat();
}
class Dog extends Animal{
public void eat() {
System.out.println(“啃骨头!”);
}
public void LookHome() {
System.out.println(“看家!”);
}
}
class Cat extends Animal{
public void eat() {
System.out.println(“吃鱼!”);
}
public void catchMouse() {
System.out.println(“抓老鼠!”);
}
}
public class Main{
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.LookHome();
Cat cat = new Cat();
cat.eat();
cat.catchMouse();
}
}
我们发现在主程序中频繁调用吃这个概念写起来很麻烦,尤其在不同类调用多个同样行为后会出现大量的代码量!
这个时候只需要将main改成
public class Main{
public static void main(String[] args) {
Dog dog = new Dog();
Cat cat = new Cat();
method(dog);
method(cat);
}
public static void method(Animal a) {
a.eat();
}
}
这样就显得简单多了,尤其在代码量大的时候这种行为更加方便!