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("喵吃了"); } }