多态的好处
1.提高的代码的维护性(继承保证,即可以通过改写父类属性与方法同义改写子类共有属性与方法)
2.提高了代码的扩展性(由多态保证,即父类为形式参数,接收任意子类对象,在开发的时候用多态,扩展性强)
代码示例:
public class Test {
public static void main(String [] args) {
method(new Cat());
method(new Dog());
}
/*
public static void method(Animal a) { //父类为形式参数,接收任意子类对象
a.eat();
}
*/
public static void method(Animal a) {
//关键字 instanceof 判断前边的引用是否是后边的数据类型
if (a instanceof Cat) {
Cat c = (Cat)a;
c.eat();
c.catchMouse();
}else if (a instanceof Dog) {
Dog d = (Dog)a;
d.eat();
d.lookHome();
}else {
a.eat();
}
}
}
class Animal {
public void eat() {
System.out.println("动物吃饭");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("猫吃鱼");
}
public void catchMouse() {
System.out.println("猫捉老鼠");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("狗吃屎");
}
public void lookHome() {
System.out.println("狗看家");
}
}