面向对象
静态代码块:随着类的加载而加载,并且只被加载一次,一般用于初始化static{...}
构造代码块:在调用构造方法前会自动调用,每次创建对象都会被调用
局部代码块:方法里的代码块,方法被调用时才会执行
执行顺序:静态代码块——构造代码块——构造函数
关键词 final
可以修饰类、方法、成员变量
特点:
被final修饰的类,不能被继承
被final修饰的方法,不能被重写
被final修饰的变量是个常量,值不能被更改
面向对象三大特点之一——多态:
指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。主要是指同一个对象,在不同时刻,代表的对象不一样,指的是对象的多种形态好处是可以把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。
特点:
多态的前提是继承
要有方法的重写
父类引用指向子类的对象
多态的使用
成员变量:使用的是父类的
成员方法:由于存在重写现象所以使用的是子类的
静态成员:随着对象的存在而存在,谁调用的就返回谁。
静态变量和实例变量的区别
语法上:静态变量前要加static关键字,实变量前则不加
程序运行上:实例变量属于某个对象的属性,必须创建了实例变量,其中的实例变量才会被分配空间,才能 使用这个实例变量。
静态变量不属于某个实例对象,而是属于类,所以也称为类对象,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用。
实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。
向上转型、向下转型
在Java中,继承也是面向对象的三大特性之一,通过extends关键字,子类可以复用父类的功能,如果父类不能满足当前子类的需求,那么子类可以重写父类中的方法来加以拓展。
向上转型:
父类的引用指向子类对象。说明向上转型时,子类对象当成父类对象,只能调用父类的功能,如果子类重写了父类的方法就根据这个引用指向调用子类重写方法。
向下转型:
子类的引用指向子类对象,过程必须要采取强制转型。向下转型时,是为了方便使用子类的而特殊方法,就是说当子类方法做了功能拓展,就可以使用子类功能。