一、 关键字final
1) final修饰类
在定义类时加上final修饰符,说明该类是最终类,不能被继承,即不能当父类
2) final修饰变量
final修饰的变量是最终变量,即常量。不能修改其值,在定义时必须赋值
3) final修饰方法
final修饰的方法是最终方法,父类包含最终方法时,子类不能覆盖该方法。
二、 关键字static
1) static修饰类
static修饰的类称为静态类。
静态类作为类的静态成员存在于某个类中。静态成员类可以不创建父类对象直接创建静态类的对象。
2) static修饰变量
类中static修饰的变量称为静态变量(也称类变量)。
类的成员变量分为类变量和实例变量。实例变量属于具体的对象,类变量属于类,不同对象的实例变量被分配到不同的内存空间,而对于类的所有对象来说,类变量共享同一个内存空间。
程序执行时,类的字节码被加载到内存中,类没有创建对象时,类变量已经被分配内存,实例变量在创建具体对象时才分配内存空间。
3) static修饰方法
类的成员方法分为类方法和实例方法,用static修饰的方法是类方法,否则是实例方法。实例方法只有生成对象时才分配内存。
类方法可以通过类名直接调用,实例方法只能同过类对象调用。
note:类方法中不能使用类的实例变量,只能使用类变量。
三、 关键字this
this关键字指类本身。
四、 关键字super
super关键字指父类。在子类中使用被覆盖的父类的成员变量和方法。
输出:
method_father_inner:静态内部类可以不创建父类对象直接创建内部类对象
method_sun_inner:静态内部类可以不创建父类对象直接创建内部类对象
父类:static方法可以通过类名直接调用
子类:static方法可以通过类名直接调用
father.static_in=10
sun.static_in=20
父类:final方法不能重载
父类:final方法不能重载
PI=6.0
super.PI=3.14
final修饰的类不能继承、方法不能重载,变量(final修饰的变量是常量)可以重载
static修饰的变量、方法、内部类,都可以通过类名直接调用
static修饰的变量、方法、内部类,都可以重载。