zoukankan      html  css  js  c++  java
  • 进度报告6

    继承使用 extends 关键字。

    • 子类可以覆盖父类的方法。
    • 子类可以继承父类除private以为的所有的成员。
    • 构造方法不能被继承。

    单继承性:Java 允许一个类仅能继承一个其它类,即一个类只能有一个父类,这个限制被称做单继承性。

    super 关键字与 this 类似,this 用来表示当前类的实例,super 用来表示父类。

    super 关键字的功能:

    • 调用父类中声明为 private 的变量。
    • 点取已经覆盖了的方法。
    • 作为方法名表示父类构造方法。

    通过 super 调用父类的隐藏变量,必须要在父类中声明 getter 方法,因为声明为 private 的数据成员对子类是不可见的。

    注意:无论是 super() 还是 this(),都必须放在构造方法的第一行。

    注意的是:

    • 在构造方法中调用另一个构造方法,调用动作必须置于最起始的位置。
    • 不能在构造方法以外的任何方法内调用构造方法。
    • 在一个构造方法内只能调用一个构造方法。

    方法覆盖的原则:

    • 覆盖方法的返回类型、方法名称、参数列表必须与原方法的相同。
    • 覆盖方法不能比原方法访问性差(即访问权限不允许缩小)。
    • 覆盖方法不能比原方法抛出更多的异常。
    • 被覆盖的方法不能是final类型,因为final修饰的方法是无法覆盖的。
    • 被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。
    • 被覆盖的方法不能为static。如果父类中的方法为静态的,而子类中的方法不是静态的,但是两个方法除了这一点外其他都满足覆盖条件,那么会发生编译错误;反之亦然。即使父类和子类中的方法都是静态的,并且满足覆盖条件,但是仍然不会发生覆盖,因为静态方法是在编译的时候把静态方法和类的引用类型进行匹配。

    覆盖和重载的不同:

    • 方法覆盖要求参数列表必须一致,而方法重载要求参数列表必须不一致。
    • 方法覆盖要求返回类型必须一致,方法重载对此没有要求。
    • 方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法(包括从父类中继承而来的方法)。
    • 方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
    • 父类的一个方法只能被子类覆盖一次,而一个方法可以在所有的类中可以被重载多次。

    多态是指一个事物有不同的表现形式或形态。

    多态存在的三个必要条件:要有继承、要有重写、父类变量引用子类对象。

    当使用多态方式调用方法时:

    • 首先检查父类中是否有该方法,如果没有,则编译错误;如果有,则检查子类是否覆盖了该方法。
    • 如果子类覆盖了该方法,就调用子类的方法,否则调用父类方法。
  • 相关阅读:
    Meta http-equiv属性详解(转)
    meta
    meta viewport 详解
    jquery 常用函数
    jquery 设置css样式
    jquery 常用函数集锦
    DATEDIFF 和 DATEADD
    C# 二进制图片串互转
    C# 二进制字符串互转
    重集合中找出最相近的一个数字
  • 原文地址:https://www.cnblogs.com/quyangzhangsiyuan/p/9696442.html
Copyright © 2011-2022 走看看