1· static
static 表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量 被static修饰的成员变量,叫做静态变量。 特点:被该类所有对象共享 不属于对象,属于类。随着类的加载而就加载,优先于对象存在。 调用方式: 类名调用(推荐),对象名调用 被static 修饰的成员方法,叫做静态方法。 特点:应用于工具类
2· 封装
封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为 什么是继承,继承的好处: 继承是面向对象三大特征之一,可以让类跟类之间产生父子的关系。提高代码的复用性; 子类可以在父类的基础上,增加其它功能 继承后子类可以得到父类的属性和行为
3·Java只支持单继承,不支持多继承,但支持多层继承; Java中所有的类都直接或间接继承于Object类
4·继承中 构造方法不能被继承的原因: 构造方法与继承类的类名不同
成员变量(私有的需要用 get()和set()方法间接使用) 都可以继承
成员方法 (私有的不能继承)
在继承中,顶级父类会创建一个虚方法表,包含(非private,非static,非final),会传递给下一级,下一家会在此虚方法表基础上添加自己的类方法.(优化运行速度)
5·成员变量的访问特点: 就近原则:会优先调用最近的变量(可以去调用父类)
6·方法重写:当父类方法无法满足子类需求时,需要重写。在继承体系中,子类出现和父类一样的方法声明,就称子类重写父类方法. 注意: 子类访问权限必须大写等于父类,只有被添加到虚方法表中的方法才能被重写。
7·构造方法的访问特点: 父类中的构造方法不会被子类继承
子类中的所有构造方法默认先访问父类中的无参构造,再执行自己的构造方法
原因: 子类在初始化时,可能会用到父类中的数据,如果父类未完成初始化,子类将无法使用父类的数据 ,子类在初始化之前,一定要调用父类构造方法先完成父类数据空间的初始化
8·多态的优势:方法中,使用父类型作为参数,可以接收所有子类对象
多态的弊端: 不能调用子类的特有功能. 原因:在调用成员方法时,会先检查左边的父类有无这个方法,没有直接报错;
9·JDK14后有一个新特性, 先判断a是否为Dog类型,如果是,则强转为Dog类型,转换后变量名为d;
Animal a=new Dog();
if(a instanceof Dog) {
Dog d=(Dog) a;
d.lookHome();
//JDK14以前
//JDK14以后
if(a instanceof Dog d){
d.lookHome();
10·this,super使用总结
this: 理解为一个变量,表示当前方法调用者的地址值
访问本类构造方法 this();
super:代表父类存储空间;
StringBuilder 中的append方法可以添加任何类型数据
11·
多态:同类型的对象,表现出的不同形态 表现形式: 父类类型 对象名称=子类对象 多态的前提: 有继承关系; 有父类引用指向子类对象; 有方法重写 多态调用成员的特点: 变量调用 : 编译看左边,运行看左边 方法调用:编译看左边,运行看右边 多态的优势: 在多态形式下,右边对象可以实现解耦合,便于扩展和维护 定义方法时,使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利