------------------------------------------------------------------------------------------------ —————————————————————————————————————— Java 的继承, 封装, 多态 Java 中的继承、封装、多态 Java 中的继承、封装、多态本博客包含以下内容, 博主是菜鸟, 正在努力学习中, 如有错误或不足,欢迎交流讨论。 1. 基本定义 2. 初始化和类的加载 3. final 关键字 4. 类之间的关系 5. 向上转型 6. 多态的缺陷 7. 构造器和多态 1 、基本定义继承: 在创建一个新类( 子类、导出类)时, 使用 extends 关键字表明它派生于一个已经存在的类(父类、基类、超类) ,导出类会获得基类的所有域和方法, 但并不是一定能直接访问, 和访问权限控制有关。和组合相比,继承是隐式的放置基类子对象封装: 封装即将成员变量或者方法的具体实现隐藏起来, 对用户提供接口的形式来访问, 用户不需要知道具体有什么以及怎么现实, 只需要------------------------------------------------------------------------------------------------ ——————————————————————————————————————知道如何使用。若是将一个类的字段和某些方法封装起来不让用户直接访问字段或者方法, 只提供类似接口的方式访问, 对用户来说, 此类可以看做一种抽象数据类型, 比如 stack 多态: 有称动态绑定、后期绑定或运行时绑定。首先明确下什么是绑定:将方法调用同一个方法主体关联起来。若在程序执行前进行绑定, 叫做前期绑定, 由编译器和连接程序实现, 比如 C 都是前期绑定; 动态绑定, 即在程序执行前不知道对象的类型(所属的类到底是基类还是导出类) ,但是在运行时根据方法调用机制能找到方法调用的正确类型从而进行绑定。故后面需要学习运行时类型信息。 2 、初始化和类的加载当创建导出类对象时,该对象实际上包含了一个基类子对象,是隐式的,而不是直接显式地用基类创建对象。从上述来看, 调用导出类的构造器创建对象是需要调用基类构造器的,而导出类可能会依赖基类对象,导出类只能访问自己的成员, 不能访问基类的成员( 一般是 private 的), 故创建导出类对象的第一步是调用基类的构造器,若是继承层次较多,则从根类开始调用。如果导出类构造器没有显式地( 通过 super 关键字) 调用基类的构造器,则会自动地调用基类的默认构造器(无参的构造器) ,若基类构造器是有参数的,导出类构造器又没有显式的调用基类构造器, 则 Java 编译器将报错。------------------------------------------------------------------------------------------------ ——————————————————————————————————————类的代码在初次使用时才加载: 1 、创建类的第一个对象; 2、访问 static 域或者方法。类的代码初次使用之处也是 static 初始化发
java的继承,封装,多态 来自淘豆网m.daumloan.com转载请标明出处.