java基础——多态

最近被找工作困扰,又把java基础拿出来看一遍,看到多态,感觉有点失了智,好在在网上找到很通俗的文章,理解了很多

/**
 * 多态:用一句话概括,事物在运行该过程中存在不同的状态
 * 1.实现多态的条件
 * (1)要有继承关系
 * (2)子类要重写父类的方法
 * (3)父类引用指向子类对
 *
 * 2.多态的弊端
 * 不能使用子类特有的成员属性和方法
 *
 * 3.解决弊端
 * 使用强制类型转换,父类就可以引用子类的特有成员属性和方法
 * Created by fanyukai on 201838 0008.
 */

//(1)要有继承关系
public class cat extends animal{

    //(2)子类要重写父类的方法
    public void run(){
        System.out.println("猫在跑!");
    }
    //(2)子类要重写父类的方法
    public void sleep(){
        System.out.println("猫在睡觉!");
    }
    //父类的方法是静态的,子类无法重写
    public static void eat(){
        System.out.println("猫在吃饭!");
    }

    public void play(){
        System.out.println("猫在玩耍!");
    }

    public static void main(String[] args) {

        //(3)父类引用指向子类对
        animal a =new cat();
        a.run();
        a.sleep();
        a.eat();
        /*多态的弊端不能使用子类特有的成员属性和方法
        a.paly();*/

        //使用强制类型转换,父类就可以引用子类的特有成员属性和方法
        cat c = (cat)a;
        ((cat) a).play();

    }
}
原文地址:https://www.cnblogs.com/FanJava/p/8529208.html