1:多态(掌握)

   (1)多态概念:一种事物的多种形态

   (2)体现:父类的引用指向其子类的实例对象;接口的引用指向其实现类的实例对象

   (3)特点:

          成员方法:编译看左边,运行看右边

                运行:子类重写的方法运行

                编译:父类的引用类型必须有该方法

          成员变量:编译看左边,运行看左边

              运行:访问的为父类的属性

               编译:父类的引用类型必须有该属性

             总结:只有在方法调用的时候,才会判断子类是否重写,重写调用子类方法。其他情况均看父类类型

             记忆方法:方法运行看右边,其他看左边

           例子:

/*
    多态:
        一种事物的多种形态
    前提:
        具有继承关系
    特点:
        方法:编译看左边,运行看右边
            运行:子类重写的方法运行
            编译:父类的引用类型必须有该方法        
        变量:编译看左边,运行看左边
            运行:访问的为父类的属性
            编译:父类的引用类型必须有该属性
        只有在方法调用的时候,才会判断子类是否重写,重写调用子类方法。其他情况均看父类类型
                一句话总结:方法运行看右边,其他看左边
*/
class Demo5
{
    public static void main(String[] args) 
    {
        Animal animal = new Animal();      //动物是一种动物
        Animal animal2 = new Cat();           //猫是一种动物,多态:猫的实例对象,父类动物的引用

        //Cat cat2 = new Animal();           //动物是猫,不可以
        Cat cat = new Cat();               //猫是猫

        Animal a = new Cat();
        //成员方法:
        a.eat();   //喵吃了
        System.out.println(a.name);  //巴马
        System.out.println(a.age);   //80
    }
}

class Animal
{
    String name = "巴马";
    int age = 80;
    public void eat(){
        System.out.println("吃了");
    }    
}

class Cat extends Animal
{    
    String name = "加菲";
    int age = 40;
    public void eat(){
        System.out.println("喵吃了");
    }    
}
View Code

相关文章: