1.final关键字
当用final去修饰一个类的时候,表示这个类不能被继承。注意:a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。b. final类中的成员方法都会被隐式的指定为final方法。
当用final去修饰一个方法的时候,被final修饰的方法不能被重写。
注意:
a. 一个类的private方法会隐式的被指定为final方法。
b. 如果父类中有final修饰的方法,那么子类不能去重写。
当用final去修饰一个成员变量的时候:
必须要赋初始值,而且是只能初始化一次。
被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。
类的加载顺序:初始化顺序依次是:(静态变量、静态初始化块)–>(变量、初始化块)–> 构造器;
如果有父类,则顺序是:父类static方法 –> 子类static方法 –> 父类构造方法- -> 子类构造方法
2.抽象类
-
@author wawjy
-
1:抽象类中只能包含抽象方法吗?
-
既可以定义抽象方法也可以定义普通方法
-
2:是否可以定义构造器
-
抽象类可以存在构造器但是无法实例化
-
抽象类中的构造器是给子类准备的
-
抽象类就是用来被继承的 抽象方法就是被重写的
-
3:子类继承了抽象了之后一定要重写所有的抽象方法
抽象类是一个模板,能够避免子类的随意设计
3.接口
接口是一个规范,是一套标准,比抽象类还抽象。
接口的定义:修饰符 interface 接口名{}
接口中的变量都是公开定义的常量
接口和类之间用implement实现