• 神奇在于=====》 继承


    一、继承

    1、作用:继承是复用程序代码的有力手段。

    2、理解继承:当有多个类之间存在相同的属性时,我们可以在这些类中抽取一个父类,当子类继承父类时,子类就能使用父类所有的方法和属性。(子类就无需定义与父类相同的属性)

    二、继承的基本语法

    1、在java语言中,用关键字Extends来表示一个类继承另一个类

    解析:以上代码表明Sub类继承了Base类。那么这个类到底继承了哪些东西?分两种情况分析。

    1)       当Sub类和Base类位于同一个包中:

    Sub类继承Base类中Public、Protected和默认访问级别的成员变量和成员方法

    2)       当Sub类和Base类位于不同的包中:

    Sub类继承Base类中Public和protected访问级别的成员变量和成员方法

    为了叙述方便,有时会采用“子类继承父类的属性和方法”这样笼统的方法。

    3)Eg.假定Sub和Base类位于同一个包中,以下程序演示在Sub类中可继承Base类的哪些成员变量和方法。

    注意点:

    1)Java语言不支持多继承,一个类只能直接继承一个类。

    错误代码如下:

    Class Sub extends Base1,Base2,Base3{…….}

    1)       尽管一个类只能有一个直接的父类,但是它可以有多个间接地父类

    代码如下:

    Class base1 extends base2{…..}

    Class Sub extends Base1{…..}

    三、方法重载

    1、重载方法必须满足的条件

             1)方法名相同

             2方法的参数类型、个数、顺序至少有一项不同

             3)方法的返回值类型可以不相同

             4)方法的修饰符可以不相同

    2Eg

    四、方法覆盖

    (一)覆盖方法必须满足多种约束

       1)子类方法的名称、参数签名和返回类型必须与父类方法的名称、参数签名和返回类型一致。

       2)子类方法不能缩小父类方法的访问权限

       3)子类方法不能抛出比父类方法更多的异常

       4)方法覆盖只存在于子类和父类(包括直接父类和间接父类)之间。在同一各类中方法只能被重载,不能被覆盖。

       5)父类的静态方法不能被子类覆盖为非静态方法

       6)子类可以定义与父类的静态方法同名的静态方法,以便在子类中隐藏父类的静态方法

       7)父类的非静态方法不能被子类覆盖静态方法

       8)父类的私有方法不能被子类覆盖

    五、super关键字

  • 相关阅读:
    Brocade FC Switch 光信号强度查看
    [Err]1418 This function has none of DETERMINISTIC,NO SQL,or R
    VBA 新手疑难杂症记录(不断更新中…)
    VBA 学习之旅(一) —— 数据类型
    ELO等级分制度
    Grunt上手指南<转>
    新开始新挑战
    html5大纲算法(目录树)
    隐居网V2.0
    长焦点图的解决方案(全兼容)
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/5403130.html
Copyright © 2020-2023  润新知