而多态性指的是对象的多态性,不是指类。
所以需要我们new一个对象,由这个对象可实现多态。
前提是这个new出来对象的类,需要继承类或者implements接口,也就是必须有父类。
以下均使用Java语言举例说明。
多态的格式和使用:
比如一只猫是动物的子类,猫被当做父类动物类来看待,这就是多态。
代码的多态性,就是父类引用指向子类对象。
如图,
我有一个Fu类,有一个Zi类继承自Fu类。
程序入口文件main方法,使用多态的写法是
Fu obj = new Zi();
等号左边是父类的引用,它指向了等号右侧子类的对象。
多态中访问成员变量的两种方式:
看成员变量是谁的就优先用谁的,如果没有则向上找,但是不能向下从子类找。
比如父类,子类都有一个成员变量
int num = 10;
如图,
这个obj.num,调用成员变量,优先从父类中的num找。
而obj.showNum(),这个调用的成员方法是子类的,则从子类的num找。
多态中访问成员方法的特点:
就是看右边new的对象的成员方法属于哪个类,则用哪个成员方法(比如子类重写了父类的成员方法时,我右边new的是子类,则使用子类的成员方法),当子类不存在调用的成员方法时,则向上找父类的成员方法。
多态的好处:
只要继承父类的子类都可以使用某个方法并执行,无论之前有的还是后来新增的,方便扩展。
并且提高了代码的扩展性,前期定义的代码可以使用后期的内容,就是后期有父类或接口被子类继承,实现后只要方法参数类型是父类的,都可以使用。
网友评论