JAVA 多态

来源:互联网 发布:csol重狙弹道优化 编辑:程序博客网 时间:2024/06/08 16:07

多态: 一种事物的多种形态
好处: 增强代码可维护性 可扩展性
弊端: 不能直接调用子类的特殊方法
规则(前提)
1.类与类之间要有联系
2.要有方法的重写
3.父类的引用指向子类的对象

class Animal{    public void eat() {        System.out.println("吃食物");    }}class Cat extends Animal{    public void eat() {        System.out.println("猫吃鱼");    }}

可以看到这里创建了两个类 动物是父类 猫是子类

Animal animal = new Cat();        a1.eat();

这里就是父类的引用指向子类的对象
打印出来的也就是猫吃鱼

多态时 当父类引用调用成员变量的时候
如果父类中没有这个成员变量 编译器不会通过
运行时 访问的是父类中的这个成员变量

多态时 调用成员方法的时候
编译器还是看父类有没有这个成员方法
但运行时是运行的子类的这个方法
这里写图片描述

向上转型: 子类赋值给父类
向下转型: 父类赋值给父类(必须先前有过向上转型)

instanceof 是关键词
用来判断 关键词左边是否属于右边那个类的对象

原创粉丝点击