java多态

多态是面向对象编程的一个重要特性,表现为父类引用指向子类对象,依赖于方法重写。它允许我们使用父类类型作为参数接受所有子类对象,增强了代码的扩展性和便利性。然而,多态不能直接调用子类的特有方法,需要强制转换后才能访问。instanceof关键字用于判断对象是否属于特定的子类类型。
摘要由CSDN通过智能技术生成

 多态
    对象的多种形态

    表现形式        Fu f=new zi();

    前提:        有继承或者实现的关系
            有父类引用指向子类对象
            有方法重写

    好处:        使用父类类型作为参数,可以接受所有子类对象,体现多态的扩展性和便利


    特点:
        变量调用:    编译看左边,运行也看左边
    
        就是编译的时候会看左边的父类中有没有这个变量,如果没有,就编译失败
        运行的时候,实际获取的时左边的父类的变量

        

        方法调用:    编译看左边,运行看右边
        编译的时候还是看左边的父类中有没有这个方法,如果没有就编译失败
        运行的时候,实际获取的是右边子类的方法

            因为编译的时候,会加载测试类,父类,和子类的class文件,
            这样就会将父类的虚方法覆盖了
    


    多态的优势和弊端
        右边对象可以实现解耦合,便于扩展和维护
        定义方法时使用父类作为参数,那么就可以接受所有的子类对象,体现多态的扩展性和便利
        

        但是多态不能调用子类的特有方法,
        如果一定想要使用,那就要将创建的父类进行强制转换,再转换为子类才可以调用
            Fu f=new Zi();
            Zi z=(Zi)f;    
            转换的时候,不能随便转,转成其他类类型会报错


        有一个instanceof的关键字,可以用来判断
        如    a instanceof Dog    判断对象a是不是狗类的多态,是就返回true


            

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值