方法的重写

  • 方法重写的前提是得有继承关系,只有继承得到才行进行重写改造
  • 方法重写发生在子类中
  • 方法重写要求方法名相同,参数列表相同,返回值类型相同或者是其子类型
  • 子类重写父类方法后,该方法的访问权限不能比父类更严格
  • 子类不能将父类的静态方法重写为非静态方法,也不能将父类的非静态方法重写成静态方法
  • 子类可以对父类的静态方法进行重写以覆盖它
  • 子类重写的方法不能抛出比父类方法更多的异常

方法重写与方法重载的区别?

  • 方法的重写发生在子类中,重写的前提是得有继承,方法的重载发生在本类中
  • 方法的重写和重载都要求方法名相同
  • 方法的重写要求方法的参数列表项相同,方法的重载要求方法的参数列表项不相同
  • 方法的重写要求返回值类型相同或者是其子类,方法的重载跟返回值类型没有关系
  • 方法的重写要求方法的权限修饰符不能比父类的方法更严格,而方法的重载跟方法的权限修饰符没有关系

Object的常用方法

  • Object 是一个顶级类,是所有类的父类
  • toString()方法 将对象变成一个字符串返回
  • equals()方法 判断两个对象是否相同【实际上判断两个对象的引用地址是否相同】
  • hashCode()方法 返回对象的哈希码【经过一定的算法得出的表示对象唯一性的散列值】
  • getClass()方法 返回对象所属的类信息 【返回类的全名 包名+类名】

equals方法的使用与注意事项

  1. 在字符串对象中,equals方法用来比较两个对象的内容是否相同
  2. 在普通对象中,equals方法用来比较两个对象的引用地址是否相同
  3. 在普通对象的比较中,如果需要根据对象的属性内容进行比较的时候,此时就需要重写equals方法
  4. 在普通对象的比较中,equals方法的比较跟运算符 == 是相同的

多态的概念与使用

  • 同一种事物在不同的条件,产生不同的结果
  • java中的多态其实就是使用父类的引用去操作和调用子类实例对象的属性和方法的一门技术

向上转型

  • 将父类的引用指向子类对象的实例
  • 此时父类引用可以操作的方法一定得是子类从父类继承【重写】得到的。
  • 向上的转型可以自动进行类型转换
  • 向上转型不能调用子类特有的方法

语法: Pet pet =new Dog();

向下转型

  • 将指向子类实例的父类引用再转给子类的引用
  • 此时该引用可以操作子类中特有的方法
  • 向下的转型需要进行强制类型转换
  • 语法:
    Pet pet =new Dog(); 
    Dog dog=(Dog)pet;

instanceof 关键字的使用

  • 判断父类的引用原本指向哪一个子类的实例
  • 使用instanceof避免类型转换的异常
  • instanceof关键字左边的引用要和右边的类存在上下级的关系

注意:向下转型的时候记得使用instanceof关键字进行判断