Java多态

Demo:

package obj;

/**
 * 多态
 */
public class Dome {
    public static void main(String[] args) {
        /**
         * 多态的实现方式:
         * 1、类型定义的是基类   Animal
         * 2、实例化的是派生类   Cat
         * 通过基类调用其中的方法和属性
         *
         * NOTE:
         * 通过基类调用属性,返回的是基类中的属性
         * 通过基类调用方法,返回的是子类中重写的方法
         */
        //多态
        Animal c = new Cat();
        System.out.println(c.name); // 动物
        //System.out.println(c.age); //报错,因为 Animal类中没有age属性
        c.skill(); //抓老鼠



        System.out.println("-------------------");

        //正常调用方式
        Cat c1 = new Cat();
        System.out.println(c1.name);//猫
        System.out.println(c1.age);//5 不报错,因为 Cat 类中有age属性
        c1.skill();//抓老鼠


    }
}

基类:

package obj;

public class Animal {
    String name = "动物";

    public void skill()
    {
        System.out.println("警惕");
    }
}

派生类:

package obj;

public class Cat extends Animal{
    String name = "猫";
    byte age = 5;

    public void skill() {
        System.out.println("抓老鼠");
    }
}

多态.png

添加新评论