• JAVA多态中的隐藏和覆盖


    Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型

    • 编译时类型:由声明该变量时使用的类型决定
    • 运行时类型:由该变量指向的对象类型决定

    如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。

    如 :

    Father f = new Son();
    

    Son是Father的子类,引用变量f就会出现编译时类型和运行时类型不一致的情况,编译时是Father类型的,运行时是Son类型。当变量的编译时类型和运行时类型不一致时,通过变量访问它所引用的对象的实例时,该实例变量的值由声明该变量的类型决定。通过变量访问它所引用的对象的方法时,该方法的行为由所引用的对象实际类型所决定。

    使用f时:

    • 获取static成员变量成员变量static方法使用的是Father中的类型
    • 获取方法使用的是Son中的类型
  • 相关阅读:
    JSON序列化选项
    JOSN的stringify()和parse()方法
    html5增强元素--续
    html5页面增强元素
    js继承模式
    js常用设计模式
    js跨浏览器事件处理
    前端兴趣浓厚,后端提不起来兴趣
    padding的讲究
    margin的讲究
  • 原文地址:https://www.cnblogs.com/b3051/p/10825961.html
Copyright © 2020-2023  润新知