sxmj

继承

继承

继承的好处

  • 减少代码的冗余,提高了代码的复用性
  • 功能扩展
  • 为 之后多态性的使用,提供前提

格式

  • class A extends B{

}

  • 体现,一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构:属性、方法
  • 当父类中声明private的属性和方法,子类继承父类以后,仍然认为获取了父类中私有的结构。只有因为封装性的影响,使得子类不能直接调用父类的结构而已。可以间接的调用私有的结构而已。
  • 子类继承父类以后,还可以声明自己特有的属性和方法:实现功能的扩展。
    子类和父类的关系,不同于子集和集合的关系

java中继承性的规定

  • 一个类可以被多个子类继承
  • 一个子类只能有一个父类:java中类的单继承性
  • 子父类是相对的概念(多层的情况)
  • 子类继承父类以后,就直接获取了父类以及所有间接父类中声明的属性和方法

顶级父类Object

  • 如果我没有显式的生命一个类的父类的话,则次类继承于java.lang.Object类
  • 所有的java类(除了java.lang.Object类之外)都直接或者间接的继承于java.lang.Object类
  • 意味着,所有的java类具有java.lang.Obejct类声明的功能

javabean的要求

  • 类是一个公共的
  • 提供一个无参的构造器,且权限也是public(反射,java高级)
  • 有相关的属性,如果属性是private的话,需要提供相关的get和set方法(反射,java高级)

方法的重写

    • 重写,子类在继承父类以后, 可以对父类中同名参数的方法,进行覆盖操作
    • 应用:重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参数的方法时,实际执行的是子类重写父类的方法。
    • 方法的规定:
      • 方法的声明:权限修饰符 返回值类型 方法名(形参列表)throws 异常的类型{
        方法体
        }
    • 子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同
    • 子类重写的方法的权限修饰符不小于父类的权限修饰符
      • 特殊情况:子类不能重写父类中声明为private权限的方法
    • 返回值类型
      • 父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void

      • 父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类

      • 如果父类被重写的方法的返回值类型是数据类型(例如:double),则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是double)。

      • 子类重写的方法跑出的异常类型不大于父类被重写的方法抛出的异常类型

      • 子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)

posted on 2021-11-19 15:18  sxmj  阅读(49)  评论(0)    收藏  举报

导航