Java 面向对象的特征

309 阅读2分钟

一. 封装性(封装与隐藏)

问题: 当创建了类的对象以后. 如果通过"对象.属性"的方式对相应的对象属性赋值的话. 可能会出现不满足实际情况的意外, 我们考虑不让对象来直接作用属性, 而是通过"对象.方法"的形式, 来控制对象对属性的访问. 实际情况中, 对属性的要求就可以通过方法来体现

解决的方法: (封装的思想)

① 将类的属性私有化
② 提供 (setter & getter)来实现调用

二. 继承性

1. 为什么要设计继承性?

2. 通过 "class A extends B" 类实现类的继承
	子类: A 父类(或基类SuperClass) : B
    
3. 子类继承父类以后, 父类中声明的属性、方法. 子类就可以获取到.
	明确: 当父类中有私有的属性或方法时, 子类同样可以获取得到, 只是由于封装性的设计, 使得子类不可以直接调用
    子类除了通过继承, 获取父类的结构之外, 还可以定义自己的特有成分
    
    extends: 子类时对父类功能的"扩展", 明确子类不是父类的子集
    
4.  java中类的继承性只支持单继承: 一个类只能继承一个父类, 一个父类可以有多个子类

5. 子类和父类是相对的概念

三. 多态性

1. 对泰兴指的是什么?	多态性可以理解为一个事务的多种表现形态
	① 方法的重载与重写
    	② 子类对象的多态性
        
2. 子类对象的多态性使用的前提:
	① 要有类的继承
    	② 要有子类对父类方法的重写
3. 程序运行分为编译状态和运行状态:对于多态来说, 编译时"看左边", 运行时"看右边"
	① 编译时, 将此引用变量理解为父类的类型
    ② 运行时, 关注于真正对象的实体(子类的对象), 那么执行的方法就是子类重写的
    
4. 子类对象的多态性, 并不适用于属性