zoukankan      html  css  js  c++  java
  • 封装,继承,多态

    封装

    封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
    封装是面向对象编程语言对客观世界的模拟,客观世界的Field都是被隐藏在对象内部的,外界无法直接操作和修改。

    封装的目的 
    1、隐藏类的实现细节。 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限 制对Field的不合理访问。 
    2、可进行数据检查,从而有利于保证对象信息的完整性。
    3、便于修改,提高代码的可维护性

    为了实现良好的封装,需要从两个方面考虑
    1、将对象的Field和实现细节隐藏起来,不允许对外部直接访问。
    2、把方法暴露出来,让方法来控制对这些Field进行安全的访问和操作。

    注意:封装最常见的就是get规方法和set方法

    继承

    继承是面向对象的三大特征之一,也是实现软件复用的重要手段。Java的继承具有单继承的特点,每个子类只有一个直接父类。 
    子类一旦继承了父类,就可以获得父类的全部Field和方法,但java的子类不能获得父类的构造器;虽然说子类只能有一个直接父类,但子类可以拥有无限多个间接父类。

    继承的实现

    Java的继承通过extends关键字实现,实现继承的类被称为子类,被继承的类被称为父类,有的也称其为基类、超类。
    java里子类继承父类的语法格式如下:
    修饰符 class SubClass extends SuperClass{
    // 类定义部分
    }

    多态

    什么是多态 ?
    当把一个子类对象直接赋给父类引用变量时,例如:SuperClass sc = new SubClass();,
    这个sc引用变量的编译时类型是SuperClass,而运行时类型是SubClass,当运行时调用该引用变量的方法时,其方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征,这可能出现:
    相同类型的变量、调用同一个方法时呈现出多种不同的行为特征,这就是多态。

    字段不具备多态性

    与方法不同的是,对象的Field不具备多态性。
    java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可以能出现所谓的多态。


  • 相关阅读:
    Leetcode Binary Tree Preorder Traversal
    Leetcode Minimum Depth of Binary Tree
    Leetcode 148. Sort List
    Leetcode 61. Rotate List
    Leetcode 86. Partition List
    Leetcode 21. Merge Two Sorted Lists
    Leetcode 143. Reorder List
    J2EE项目应用开发过程中的易错点
    JNDI初认识
    奔腾的代码
  • 原文地址:https://www.cnblogs.com/t0404/p/10291089.html
Copyright © 2011-2022 走看看