java听课笔记(八)

三个修饰符

static

属性,方法,代码块

不可以修饰局部变量

属于类,可以通过类名进行调用。

类变量(属于类)

实例变量(属于对象)

类加载的时候初始化static修饰的变量

构造函数可以初始化static变量吗?(应该可以)

静态方法

通过类名直接调用

static public是可以的

非静态的既可以访问静态也可以访问非静态

静态的只能调用静态的

静态方法中不能使用this,super关键字

this和super属于当前对象,静态优先对象存在

静态方法在内存中的数据段,this和super是heap堆的引用,不能对数据段中的数据进行调用

非静态方法只能覆盖非静态方法

静态方法只能覆盖静态方法

但是没有多态

静态代码块

static{

}

构造方法,语句块,静态代码块执行顺序

类中的其他代码可以放在

{    }

static 构造方法 语句块

final

修饰变量(属性,局部变量)

一旦赋值就不可以改变

修饰属性时,必须对属性显式赋值,或使用构造方法赋值

final static 一起修饰属性

变量:一旦给值,就不可以修改,并且可以通过类名访问

对于方法:表示不可覆盖,并且可以通过类名访问

final方法不能子类覆盖

final类不能被继承

abstract

修饰类,抽象类

不能实例化

含有抽象方法的类必须是抽象类

抽象类不一定含有抽象方法

子类继承抽象类,要么实现父类全部的抽象方法,要么把子类声明为抽象类

当一个子类不需要被实例化,定义为抽象类

子类相同行为有各自不同的实现方式时,把父类定义为抽象类

原文地址:https://www.cnblogs.com/dongwenbo/p/3289428.html