多态中的一些注意点

多态中的一些注意点

  • 一个对象的编译类型在定义对象的时候就已经确定了,不能改变
  • 一个对象的编译类型和运行类型可以不一致
  • 运行类型是可以变化的
  • 编译类型看定义的时候 = 左边是编译类型,右边是运行类型
    代码如下
    Animal animal = new dog();//animal编译类型是Animal
    //运行类型是dog
    Animal cat = new cat();//animal运行类型是cat

多态的细节讨论

多态的前提是:两个对象(类)存在继承关系
多态向上转型

  • 本质:父类的引用指向了子类的对象
  • 语法:父类类型 引用名 = new 子类类型();
  • 特点:编译类型看左边,运行类型看右边
    可以调用父类中的所有成员,不过需要遵守访问权限
    不能调用子类中的特有成员
    最终运行效果看子类的具体表现

多态向下转型

  • 语法 子类类型 引用名 = (子类类型) 父类引用;
  • 只能强转父类的引用,不能强转父类的对象
  • 要求父类的引用必须指向的是当前目标类型的对象
  • 当向下转型后,可以调用子类类型中所有的成员
    成员: 属性和方法

java的动态绑定机制

  • 当调用对象方法的时候,该方法会和该对象的内存地址/运行类型绑定
  • 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用

ps:
Java中一些知识点的比较
b00d6e3822581078638f8f6f3abb57df.pngb00d6e3822581078638f8f6f3abb57df.png
9241b4a207630fda193c0a0d7f718764.png9241b4a207630fda193c0a0d7f718764.png

posted @ 2022-07-06 16:56  AINIBYM  阅读(27)  评论(0)    收藏  举报