JAVA 多态

/*
多态
OOP三大特性:封装、继承、多态
多态:可以理解为事物存在的多种体现形态
例如:
动物:猫,狗,猪
人:男人,女人

1、多态的体现
父类引用指向子类对象

2、多态的前提
    (1)必须得类与类之间存在关系,可以是继承关系,也可以是实现关系
    (2)必须得有重写

3、多态的好处
大大提高了程序的可扩展性    

4、多态的弊端
虽然提高了程序的可扩展性,但只能用父类引用,访问到父类中的成员
    
    
多态成员变量的特点:
1、编译期间:参阅的是引用型变量是否有所属的类中是否有调用的方法
2、运行期间:参阅对象所属的类中是否有调用的方法
*/

//动物
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("喵喵的唱歌");
    }
    void catchMouse(){
        System.out.println("捕鼠");
    }
}
//
class Pig 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);
        Pig p    =    new Pig();
        function(p);
        
    }
    public static void function(Animal c){
        c.sing();
    }
}
原文地址:https://www.cnblogs.com/phpyangbo/p/java-duotai.html