栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-10-22

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-22

Java基础----多态

1. 概念:父类引用指向子类对象
        2. 语法: 父类类型 引用名=new 子类类型(构造参数);   //Animal a=new Panda();   Animal a=new Dog();   //Animal a=new Monkey();
            主观类型----->实际类型
            父类类型----->子类类型
            父类引用----->子类对象
        3. 使用
            3.1 编译时,父类引用仅可调用自身定义的属性或者方法,不可调用子类特有的属性或者方法
            3.2 运行时,优先调用子类覆盖后的方法,如果没有覆盖,则调用父类方法
        4. 特点:
            4.1 子类对象赋值给父类引用
                Animal a=new Dog();
                结论:父类引用指向子类对象
                
            4.2 父类引用赋值给子类引用
                Animal a=new Panda();  //动物引用指向了Panda对象
                Panda p=(Panda)a;  //类型强转  实际类型 引用名=(实际类型)父类引用;
                结论:父类引用赋值给子类引用时,必须进行强制类型转换(只能编译OK)
                      运行时,可能出现java.lang.ClassCastException 类型不兼容异常
                      
            4.3 不存在继承关系的对象相互赋值
                Animal a=new Dog();
                Person p=(Person)p; // error 没有继承关系
                结论:不存在继承关系的对象,不允许相互转换
        5. instanceof (是不是 如:狗是不是动物 狗是不是狗)
                语法: 引用名 instanceof  类名
                作用: 判断引用指向的对象和后面的类型是否兼容, 兼容为 true ,不兼容为 false ;
                Animal a=new Dog();
                a instanceof Dog; //true
                a instanceof Cat; //false
                a instanceof Animal; //true
                
                Animal a1=new Cat();
                a1 instanceof Cat; //true
                a1 instanceof Dog; //false;
                a1 instanceof Animal; //true
        6. 应用
            6.1 多态应用在方法的参数上
                    调用方法是,可以传的参数包括父类类型和所有它的子类类型
            6.2 多态应用在方法的返回值类型上
                    调用方法后,可以得到的结果类型包括父类或者它的子类类型
        7. 好处
            对使用者屏蔽子类之间的不同差异,使得方法调用更简单、灵活通用
            
    注意:  1) 父类引用指向子类对象,且对象的类型始终不变
            2) 编译时,父类引用只能调用已经声明的方法
            3) 运行时,子类中覆盖的方法优先执行,如果没有覆盖,则执行父类中继承的方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351483.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号