zoukankan      html  css  js  c++  java
  • 继承

    继承的基本语法

    继承:在JAVA中 ,用extends关键字来表示一个继承另一个类.

    public class extends Bass{
      ...
    }

    以上代码表示Sub继承了Bass类.那么Sub继承了Bass类的那些东西呢?

    • 当Sub类和Bass类位于同一个包中Sub类继承Bass类中public,protected和默认访问级别的成员变量和方法.
    • 当Sub类和Bass类位于不同一个包中Sub类继承Bass类中public,protected访问级别的成员变量和成员方法.

    Java语言不支持多继承即一个类只能直接继承一个类否则导致变异错误.

    例如:

    public class Sub extends Bass1,Bass2,Bass3{...}

    尽管一个类只能有一个直接父类,但它可以有多个间接父类.

    例如:

    class Bass1 extends Bass2{...}
    class Bass2 extends Bass3{...}

    所有的Java类都直接或间接地继承了java.lang.Object类.

    方法重载

    类的同种功能有多重种实现方式.

    例如:

    java.lang.max()方法能够从两个数中区出最大值,他有多种实现方式.

    以下程序多次调用类的max()方发,运行时,Java虚拟机先判断给定的参数的类型然后在判定执行那个nax()方法.

    方法重载必须满足的条件:

    • 方法名相同
    • 方法的参数类型,个数,顺序至少有一项不同.
    • 方法的返回类型可以不同
    • 方法的修饰符不可以相同

    下面我们来看一下题目来看一下那些类可以构成重载

    例如:在Sample类中已定义了一个amethod()方法.

     方法覆盖

    public voidwrite(){
    //用手写字
    ...
    }

    由于Sub1类的写字的实现方式与Base类不一样,因此在Sub1类中必须重新定义write()方法.

    public void write(){
    //用脚写字
    ...
    }

     覆盖方法必须满足多种约束.

    • 子类方法的名称,参数签名和返回类型一致
    • 子类方法不能缩小父类方法的访问权限
    • 子类方法不能抛出比父类方法更多的异常
    • 方法覆盖只存在与子类和父类之间在同一个类中方法只能被重载,不能被覆盖
    • 父类的静态方法不能被子类覆盖为非静态方法
    • 子类可以定义与父类的静态方法,以便在子类中隐藏父类的静态方法
    • 父类的非静态方法不能被子类覆盖
    • 父类的私有态方法不能被子类覆盖

    方法重载与方法覆盖的异同

     组合与继承对决

                                                                    组合与继承的对应关系

    组合关系 继承关系
    局部类 父类
    整体类 子类
    从整体到局部的类的分解过程 从子类到父类的抽象过程
    从局部到整体的类的组合过程 从符类到子类的扩展过程

    使用继承关系:

     

    使用组合关系

    更多详情请关注 http://www.cnblogs.com/baixingqiang/
  • 相关阅读:
    《Android Studio有用指南》4.27 使用演示模式
    深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小样例
    银行业务调度系统的实现
    高通平台读写nv总结【转】
    LTE-A 载波聚合(Carrier Aggregation)介绍【转】
    DSDS,双模,双卡,双待,单待,双通,单通,概念及相互关系?【转】
    【LTE基础知识】SGLTE, SVLTE, CSFB, VoLTE【转】
    SRLTE,SGLTE,SVLTE,CSFB,VoLTE的区别【转】
    高通计划停用MSM 以SDM为移动平台命名【转】
    高通平台文档下载【学习笔记】
  • 原文地址:https://www.cnblogs.com/baixingqiang/p/5531311.html
Copyright © 2011-2022 走看看