package com.inmind.poly08; /* 多态的格式和使用 多态的前提:【重点】 继承或者实现【二选一】 方法的重写【意义体现:不重写,无意义】 父类引用指向子类对象【格式体现】 -------------------------------------------------- 多态中成员变量和成员方法的访问特点 在多态中的成员变量的访问特点: 1.通过对象直接访问成员变量,对象创建时,=左边是谁,就优先使用谁的成员变量,如果没有向上找 2.通过对象调用成员方法,间接操作成员变量,方法属于谁,就优先使用谁的方法,如果没有向上找 编译看左边,运行看右边!!!! */ public class Demo08 { public static void main(String[] args) { //普通的面向对象的写法 Dog dog = new Dog(); Cat cat = new Cat(); //多态写法:父类引用指向子类对象 Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.run(); animal2.run(); //访问animal2的属性 System.out.println(animal2.num); System.out.println(animal2.numFu); //System.out.println(animal2.numZi);//在多态中子类的属性无法访问 //访问animal2的行为 animal2.getNumFu();//编译看左边,运行看右边 //编译看左边,左边是Animal类,类中没有getNumZi,并且Animal的父类也没有getNumZi方法,所以编译不通过 //animal2.getNumZi(); animal2.run(); } }