首页 > 代码库 > java的三大特性

java的三大特性

三大特性
封装
    对象要有明确的边界 数据隐藏,保护
    
    访问修饰符
    private  私有  只能在对象内部访问  隐藏在对象边界之内
    public   公开  任何地方都可以访问  暴露在对象边界之外  

    属性私有,方法也可以私有
    为属性提供对应的get/set 访问方法
   
继承
    一般 - 特殊      
    父类   子类     
    子类 is a 父类
    
    共性放在父类,个性放在子类 

    class 子类 extends 父类

    父类哪些属性和方法能继承给子类? 
    访问修饰符:
    private    私有    本类访问        不能继承
    (default)  默认    本类+同包       同包子类能继承
    protected  受保护  本类+同包+子类   能继承 
    public     公开                    能继承
    构造方法不能继承给子类!

    方法覆盖(Override)
    子类用特殊的方法实现替换父类继承给它的一般的方法实现
    语法:方法名、参数表、返回值类型相同;访问修饰符相同或更宽 
    
    单继承
    一个类只能有一个直接父类 class B extends A     
    类之间会形成简单的树状结构

    super
    1. super. : 引用  父类对象 
              访问父类被遮盖的属性
              调用父类被覆盖的方法
    2. super(): 用在构造方法中的第一条语句  调用父类构造方法
      在构造方法中,如果第一行不是"this(...)"或"super(...)" ,默认为"super();"

    对象构造过程:
    1) 分配空间                 属性被赋以默认值
    2) 构造父类对象             (重复2-4)
    3) 初始化本类非静态属性     属性被赋以初始值  
    4) 调用本类构造方法         属性常常被赋以构造参数

多态
    子类对象可以赋值给父类引用
    
    1) 对象类型不变
    2) 只能对引用,调用其引用类型中声明的方法
    3) 运行时,根据对象实际类型,调用子类覆盖之后的方法

    子类引用可以直接赋值给父类引用
    父类引用必须通过强制类型转换,才能赋值给子类引用,可以通过instanceof判断类型是否兼容,从而避免类型转换异常!
    不相干的两个类的引用之间,无法赋值!

    引用 instanceof 类名    布尔表达式  判断引用中的对象和类名是否兼容
          是不是

    Animal a = new Dog();
    a instanceof Dog       true
    a instanceof Cat       false
    a instanceof Animal    true

    多态的作用: 通用
    将不同的子类对象,统一看作父类对象,从而屏蔽不同子类之间的差异

    多态的常见用法:
    多态用在方法的参数上: 形参为父类引用,实参可以为子类对象
         m(A a):该方法可以用A类或A类任何子类对象作为实参
    多态用在方法的返回值上:返回值类型为父类,实际返回值可以为子类对象
         A m(): 该方法可以返回A类或A类任何子类对象