线程不安全,加锁
public int count;
这个类的对象的属性可被其他使用,但是不能改变
属性私有;final单值变量,初始化一次只能,不提供访问属性的方法set,只提供get方法。通过有参的构造方法初始化
final(断子绝孙)
一般用于类、方法、变量前
final类不可被继承;final方法可被继承,但不能被复写或覆盖
final属性 并不说明它是常量,但可以说明它是单值变量(只能初始化,不能赋值)
final属性
(1)final类型的静态全局变量只能显式初始化,不能再赋值
(2)final类型的局部变量,栈里开辟空间,一开始没有初始化,只能赋初值一次;若初始化赋初值了,则不能再赋值
(3)final类型的实例全局变量,堆里开辟空间,只能显式初始化,不能再赋值
(4)final类型的引用类型变量,只能显式初始化,不能再赋值, Aclass的对象的地址一次,可改变所指对象的属性
(5)形参可为final,没有默认初始化,赋值一次;
接口里的属性都是final或者static,显式初始化。
abstract
抽象类不能创建对象,不能实例化,
抽象类可以被继承,抽象类有构造方法(构造方法不能私有化)
创建子类对象不会创建父类对象,但会调用构造方法
如果一个类有1个抽象方法,这个类就是抽象类。
抽象方法要有abstract;抽象方法后接分号
子类继承父类的私有属性,方法,并进行重写。调用父类的构造方法,再调用父类的构造方法。
空实现方法和抽象方法不同