类的三大特性,封装、继承、多态,其中,实现封装的关键字是 private
Java中,类的封装只有一个目的:隐藏内部实现细节,提供功能实现
喜欢吃鸡蛋,而不必在意下蛋的细节或下蛋的母鸡,这是封装的理解
Java 中的四个关键字 private
、default
、protected
、public
,作为访问权限修饰符存在
作用于类、属性、方法,代表着不同的可访问级别,具体的细节如下
以上,是详细的访问级别,当不添加访问修饰符时,默认为 default
对于 Java 中的 package 包
,简单理解为文件夹即可,代表 Java 源文件存放的层次目录
Java 中,实现继承的关键字是 extends
在继承中,存在几个注意点
在 Java 的继承体系中,存在一个最高父类 Object
,由它派生出其它的 Java 类
Object 类中,定义了一系列的公用方法,常见的有
在 Java 中,两个数据元素是否相同,存在两个方法判断,==
、equals()
==
:对 原始
类型进行 值
判断,而 引用
类型则通过 堆存储地址
判断equals()
:不可以用于 原始
类型判断,引用
类型则通过 堆存储地址
判断简单的理解,==
对于原始类型,就是比较内容上的是否相同
而对于引用类型,==
、equals()
则是比较两个变量的对象引用地址是否相同
值得注意的是,equals()
可以被重写,更改它的判断条件,多见于 String、Integer
Java 中不支持
运算符重载
,所以 == 的定义不会改变
方法重写的前提,是父类方法可以被子类继承
在 Java 的继承,子类可以在继承父类方法的基础上,重写该方法,存在以下限制
@Override
注解进行声明,标注这是一个有效的方法重写父类静态方法可以继承、不可重写,但允许存在同名静态方法,细节参考之后的 多态
@Override
注解可以对方法的重写做出约束(了解即可)
方法重写的约束,也可以满足里氏代换的要求
方法的重写与方法的重载只是看似一样,实质完全不同的两个概念
super
关键字可以访问父类的构造方法、实例属性、实例方法
简单的理解为,子类继承了父类,父类相当于实例化了一个对象
基于此,可知 super
关键字的两个用途
super
关键字与 this
关键字 都必须置于构造方法首行,率先执行,故二者又不可同时存在
最早见到 final,是在常量中,表示 final 常量,定义变量的不可变性
值得注意的是,final 关键字的用法很多,但含义上是一致的
在继承中,final 又意为不可继承
若 final 修饰类,则该类不可被继承;若 final 修饰类实例方法,则该方法不可被重写
值得注意的是(多次提醒),static
是可继承、不可重写,但可存在静态同名属性、函数
在 Java 的继承中,父类、子类的各种属性、方法、代码块,存在不同的执行优先级
若属性、方法、代码块的优先级相同,则顺序执行,自上而下
简单的理解,父类、子类的静态部分是第一优先级,其次是父类其他部分、最后是子类
值得注意的是,构造方法的执行优先级,低于实例属性、方法
这也是为了方便 通过构造方法,为对象的实例属性赋值