• java复习-多态性


    多态性

    在Java中对于多态性由两种实现的模式:

    方法的多态性

    方法的重载:同一个方法名称可以根据传入的参数类型和个数的不同,进行不同的处理。
    方法的覆写:同一个方法可能根据使用子类的不同,由不同的实现。

    对象的多态性

    父子实例之间的转换处理,有两种模式:

    1. 对象向上转型
      定义:父类 父类实例 = 子类实例、自动完成转换; 即子类只有一个父类,无歧义,直接转。
      编译看左边,运行看右边
      编译的时候,以左边父类中的定义为主,父类中有哪些方法和属性,才能使用哪些方法和属性,不能有子类中新增的方法。
      运行的时候,以右边子类的对父类方法的实际覆写内容为主,子类覆写了父类的方法,在执行时,是执行的子类中覆写的新内容。
      功能(使用场景):可以对参数进行统一的设计,如下
    public class JavaDemo {
        public static void main(string args[]) {
            fun(new DataBaseMessage ()) ; //DataBaseMessage 是 Mesrage的一个子类
            MessaMessafun(new WebServerMessage ()) ; // WebServerMessage 也是 Mesrage的一个子类
    public static void fun(Mesrage msg){ // 不管传递的是哪个类型的子类都能实现接收,且覆写的方法依旧有用
        msg.print()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 对象向下转型
      定义:子类 子类实例 = (子类) 父类实例、强制完成转换; 即父类向下走的时候,可能有很多子类,使用要在前面有指定是哪个子类。
      功能:为了使用子类的特殊定义,即子类实例化对象在一般情况下是父类类型,但需要时可以转化为子类类型来使用。
      注意:在使用向下转型前,一定要首先发生向上转型。因为如果直接用一个父类实例化的对象,其并不清楚向下的子类的存在。

    instanceof 关键字

    为了保证向下转型的正确性,故需要在转型之前判断某个实例是否是某个类的对象,此时就需要通过 instanceof 关键字来进行判断。
    语法: 对象 instanceof 类

  • 相关阅读:
    P1151 子数整数
    pwnable第17题到第21题知识点记录
    DDoS类型攻击对企业造成的危害
    Linux使用systemctl实现开机自启动
    基于grpc从零开始搭建一个准生产分布式应用(6) - 06 - MapStruct常见问题汇总
    linux 给根目录扩容(lvm CentOS 7.6 &kylinx86)
    linux误删系统目录的恢复
    matlab分岔图绘制
    web网页设计期末课程大作业——汉中印象旅游景点介绍网页设计与实现19页面HTML+CSS+JavaScript
    5.2 Ajax 数据爬取实战
  • 原文地址:https://blog.csdn.net/qq_41168765/article/details/133557337