189 8069 5689

Java基础2022/11/23韩顺平课程笔记Java多态-创新互联

多态
  • 对象的多态
    • 向上转型(只能调用父类方法)
    • 向下转型(可以调用子类方法)
  • `instanceof`比较操作符
  • Java动态绑定机制
  • `==`比较运算符
  • `equals`方法
  • `hashCode`方法
  • `toString`方法
  • `finalize`方法:垃圾回收器

创新互联网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,做网站、成都网站设计,塑造企业网络形象打造互联网企业效应。对象的多态
  • 一个对象的编译类型和运行类型可以不一致
  • 编译类型在定义对象时,就确定了,不能改变
  • 运行类型是可以变化的,由JVM机自行判断
  • 编译类型看定义时=号的左边,运行类型看=号的右边
向上转型(只能调用父类方法)
  • 语法:父类类型 引用名 = new 子类类型();
  • 可以调用父类中的所有成员(需遵守访问权限)
  • 不能调用子类特有的成员
  • 编译阶段,能调用哪些成员是由编译类型决定的
  • 最终运行效果看子类(运行类型)的具体实现,即调用方法,按照从子类(运行类型)开始查找方法,然后调用。
Animal animal = new Dog("喻狗驹"); //向上转型
animal.cry();
向下转型(可以调用子类方法)
  • 语法:子类类型 引用名 = (子类类型)父类引用;
  • 只能强转父类的引用,不能强转父类的对象
  • 要求父类的引用必须指向当前目标类型的对象
  • 可以调用子类类型中所有的成员
Animal animal = new Dog("喻狗驹");
animal.cry();
Dog dog = (Dog) animal; //向下转型
dog.print();
  • 属性
    • 属性没有重写之说!属性的值直接看编译类型
Animal animal = new Dog("喻狗驹");
animal.cry();
System.out.println(animal.age); //此时输出animal类的age
Dog dog = (Dog) animal;
System.out.println(dog.age); //此时输出dog类的age
instanceof比较操作符
  • 用于判断对象的运行类型是否为XX类型或XX类型的子类型。
Animal animal = new Animal();
Dog dog = new Dog();
System.out.println(dog instanceof Animal); //true
System.out.println(dog instanceof Dog);    //true
Animal animals = new Dog();
System.out.println(animals instanceof Dog);    //true
System.out.println(animals instanceof Animal);    //true
Java动态绑定机制
  • 当调用对象方法时,该方法会和该对象的内存地址/运行类型绑定
  • 当调用对象属性时,没有动态绑定机制,哪里声明,哪里使用
  • 多态数组:数组的定义类型为父类类型,里面保存的实际元素类型为子类类型
==比较运算符
  • ==既可以判断基本类型,也可以判断引用类型
  • 如果判断基本类型,判断的是值是否相等;
  • 如果判断引用类型,判断的是地址是否相等,即判断引用的是否是同一个对象
equals方法
  • Object类中的方法,只能判断引用类型
  • 默认判断的是地址是否相等(子类未重写的情况下,比较是否是引用同一个对象),子类往往重写该方法,用于判断内容是否相等,可以不是同一个对象。
hashCode方法
  • 该方法为了提高哈希结构的容器的效率
  • 两个引用,如果指向的是同一个对象,则哈希值是一样的;如果指向的是不同对象,则哈希值是不一样的(一般而言)
  • 哈希值主要根据地址号来的,不能完全将哈希值等价于地址
toString方法
  • 返回对象的字符串表示,默认返回:全类名(包名+类名)+@+哈希值的十六进制
  • 子类往往重写toString方法,用于返回对象的属性信息
  • 打印对象或者拼接对象时,都会自动调用该对象的toString方法
finalize方法:垃圾回收器

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文标题:Java基础2022/11/23韩顺平课程笔记Java多态-创新互联
标题URL:http://cdxtjz.cn/article/iegsp.html

其他资讯