抽象类abstract、接口interface、静态static、final,单例模式,常量解读——JAVA
目录
三、private\default\protected\public
一、抽象类和接口
抽象类:一个类暂时由方法未实现,需要被定义未抽象类。
类的继承:一个类仅仅只能继承一个类,抽象类也可以被其他类唯一继承。继承抽象类的类必须实现抽象类所有抽象的方法,如果未完成实现,则此继承类也是抽象类。只有实现抽象类(父类里)的所有抽象类,才能变成完整类。
接口:类的所有方法都没有实现,这个类就可以称为接口interface。接口不是类,或者可以叫一个特殊的类,因为一个类可以实现多个接口。类实现接口,也必须实现所有未实现的方法,如果没有完全实现,那么类也只能成为一个抽象类。接口里面可以定义变量,但是一般是常量。常量的定义方法一般为 final static .....
接口和抽象类的相同点:两者都不可以被new(实例化)操作
接口和抽象类的不同点:
抽象类:abstract关键字,抽象类中可以有已经实现的方法存在,一个类只能继承一个抽象类,抽象类有构造函数,抽象类可以有main函数,可以运行;抽象类中的方法可以是private/protected的。
接口:interface关键字,接口内只存在未实现的方法,一个类可以实现多个接口,接口本身可以继承其他的多个接口,接口中没有main函数,接口中方法只能是public。
二、static、final,单例模式,常量
2.1static
static变量:相当于共有变量,通过格式:类名.变量访问,同一个类实例化出的对象的静态变量的值都在共享存储的共同的一个空间。
static方法:静态方法可以通过类名.方法直接引用,在静态方法中只能由静态变量,不能有非静态变量,静态方法严禁引用非静态方法
static块:指的是static关键字{}住的区域代码,只在类的第一次被加载时调用,也就是说程序运行期间,这段代码只会运行一遍。执行顺序static块>匿名块>构造函数
2.2单例模式:
保证一个类有且只有一个对象,用static来共享实例对象,采用private构造函数,阻止外界new操作。
举例:
2.3final
final类:不能被继承
final方法:子类不可以更改
final变量:基本类型不能再次赋值,对象类型不能修改指针。
2.4常量
定义一般用 public static final来定义,为了方便访问public,不能修改final,不会修改/只读/只有一份static
一般常量为大写。个人以为用到常量的地方用文件存储方式也可。
举例:public static final String STR="hello";
三、private\default\protected\public
参考:中国大学mooc《JAVA核心技术》