美文网首页程序员
第五章 继承

第五章 继承

作者: zhaojinhui | 来源:发表于2020-07-22 10:26 被阅读0次
  1. super:用来调用父类的方法
    放在子类的构造函数开头,调用父类构造函数
  2. 静态绑定:private,static,final和构造函数,overload
    动态绑定:overwrite
  3. overwrite:子类重新定义父类中的方法
    1. 参数列表必须完全与被重写方法的相同。
    2. 返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类
    3. 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为 public,那么在子类中重写该方法就不能声明为 protected。
    4. 父类的成员方法只能被它的子类重写。
    5. 声明为 final 的方法不能被重写。
    6. 声明为 static 的方法不能被重写,但是能够被再次声明。
    7. 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
    8. 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法。
    9. 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。
    10. 构造方法不能被重写。
  4. overload:重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。
    1. 被重载的方法必须改变参数列表(参数个数或类型不一样);
    2. 被重载的方法可以改变返回类型;
    3. 被重载的方法可以改变访问修饰符;
    4. 被重载的方法可以声明新的或更广的检查异常;
    5. 方法能够在同一个类中或者在一个子类中被重载。
    6. 无法以返回值类型作为重载函数的区分标准。
  5. 异常:java中除了RuntimeException外,都是强制性异常。
    1. 强制性异常:所谓强制性异常就是在编写程序的过程中必需在抛出异常的部分try catch 或者向上throws异常。
    2. 非强制性异常:所谓非强制性异常就和上面相反了。不过你当然也可以try catch或者thows,只不过这不是强制性的。
  6. 抽象类:不能被实例化,有抽象方法的类必须是抽象类
  7. 抽象方法:有abstract的方法,在实体子类中必须实现 所有的abstract方法,如果子类是抽象的,那么可以实现或不实现父类的abstract方法
  8. java 所有的类都继承自object class
    1. equal:比较两个object是否相同
      完美的equal应该具有以下6条要素
      1. 参数类型必须是Object,取名otherObject
      2. if (this == otherObject) return true;
      3. if (otherObject == null) return false;
      4. if (getClass() != otherObject.getClass()) return false;
      5. ClassName other = (ClassName) otherObject
      6. return field1 == other.field1 && Objects.equals(field2, other.field2)
        && . . .;
    2. hashCode:
      1. object的默认hashcode是它的地址
      2. String的hashcode是从字符穿的值产生而来
      3. null的hashCode是0
      4. equal的object hashcode必须返回一样的值,反之不用
    3. toString:
      1. default toString是class名+hashCode
  9. wrapper: Integer, Long, Fload, Double, Byte等
    1. 类是final的,不能有子类
    2. 声明了一个值就不能改变
    3. Integer到int以及int到Integer转换的过程叫autoboxing和auto unboxing
    4. 编译时发生
  10. reflection: 主要是在运行的时候,分析一个对象,并获取其类的类名,方法,成员变量等信息,并可以创建新的对象
  11. 继承的一些规则:
    1. 不要用protected的成员变量
    2. 遵循is-a准则
    3. 父类所有的方法都适用的时候考虑继承
    4. overwirte不要改变方法的原始意图
    5. 当有以下类似代码时,考虑继承和多态:
      if (x is of type 1)
      action1(x);
      else if (x is of type 2)
      action2(x);

相关文章

  • JAVA核心技术总结(五六章)继承&接口与内部类

    第五章 继承 在Java中,所有的继承都是公有继承,没有C++的私有继承和保护继承 Java同C++一样,子类不能...

  • 第五章 继承

    1. 类、超类、子类 1.1 定义子类 关键字extends表明正在构造的新类派生于一个已存在的类。 已存在的类称...

  • 第五章 继承

    1.this关键字的两个用途: 引用隐式参数 引用本类的其它构造器 2.super关键字的功能: 调用超类的方法 ...

  • 第五章 继承

    super:用来调用父类的方法放在子类的构造函数开头,调用父类构造函数 静态绑定:private,static,f...

  • 子类与继承

    使用关键字extends来定义一个类的子类 在java核心技术卷一,第五章继承,5.14节 “阻止继承:final...

  • 《JavaScript语言精髓》读书笔记(2)

    第五章 继承 js是一门基于原型的语言,这意味着对象直接从其他对象继承。 伪类 对象说明符 原型 函数化一个函数化...

  • 第五章 继承与多态

    学习目的 掌握派生类的定义和使用; 掌握派生类构造与析构函数的定义; 掌握重写基类的成员函数; 掌握通过基类指针或...

  • 《岳响河》目录 第五章

    第五章1 第五章2 第五章3 第五章4 第五章5 第五章6 第五章7 第五章8 第五章9 第五章10 第五章11 ...

  • 《网络素养》第五,六章阅读心得

    第五章 为什么网络很重要? 还是一样的,专注、参与、协作、对信息的批判性继承和联网技巧。感觉这个题目和这五个词都没...

  • 继承 继承

    属性拷贝 继承不单单能通过原型链实现,也能通过其他方式实现,属性拷贝就是其中一种方法。 通过属性拷贝也能实现继承子...

网友评论

    本文标题:第五章 继承

    本文链接:https://www.haomeiwen.com/subject/txmjcktx.html