1.定义

左父右子就是多态
多态就是一种对象的多种形态
父类对象指向子类对象

2.实现方法

格式:
父类名称 对象名 = new 子类名称();

接口名称 对象名 = new 实现类();
例:

     public class DemoMulti {
        public static void main(String[] args) {
            Fu li = new Zi();
            li.abc();
            li.abs();
        }
      }

3.多态中成员变量

访问成员变量的两种方式:
a.直接通过对象名称访问成员变量:看等号左边是谁,优先用谁,没有则向上找
b.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则向上找

4.多态中的成员方法

访问规则:
看new的是谁,就先用谁,没有则向上找
口诀:
编译看左边,运行看右边

5.多态的好处

无论右边new的时候换成那个子类对象,等号左边调用方法都不会变化

6.对象的向上转型

格式:

父类名称 对象名 = new 子类名称();

含义:
右侧创建一个子类对象,把他当作父类来看待使用
注意:向上转型一定是安全的,从小范围转向了大范围.

7.对象的向下转型(还原动作)

格式:子类名称 对象名 = (子类名称) 父类对象;
含义:将父类对象【还原】成本来的子类对象;
例:

Animal animal = new Cat(); //本来是猫,向上转型成为动物
  Cat cat = (Cat) Animal; //本来是猫,向下转型还原为猫

注意:
a.必须保证对象本来创建的时候,就是猫,才能向下转型为猫.
b.如果对象创建的时候本来不是猫,现在非要向下转型成为猫,就会报错.

8.用instanceof关键字进行类型判断本来是什么子类

格式:

对象名 instanceof 类名

返回值:

boolean类型值

例:

  if(animal instanceof Cat)//判断
  {
     Cat cat = (Cat) animal;
  }
Last modification:May 29th, 2020 at 02:05 pm
如果觉得我的文章对你有用,请随意赞赏