关键字 final、this、super、static

final:意思是终的、不可变的

final可以修饰方法、属性、类型,在修饰方法的时候父类的方法只能被子类调用而不可以重写,修饰属性的时候需要赋值,或者在构造方法中对final所修饰的属性进行赋值,因为父类中的构造方法一定会执行的,所以可以在构造方法中对final修饰的属性赋值,一旦赋值则不可以改变。final修饰类的时候不允许被继承,因为final意为最终的最后的不可变的,而继承是extends是可扩展的可延伸的,所以说在final修饰的类中不允许被继承,他类中的属性是不可变的!!!!

属性上可以声明的同时直接赋值或者在构造器中赋值

final临时变量,可以声明的同时赋值或者在第一次使用之前进行赋值

注意:final类型的变量一旦赋值则不允许修改,但是如果是复杂类型是不允许修改地址,但是可以修改属性

final方法表示这个方法不允许在子类中重新定义(覆盖\重写)

final类表示这个类不允许被继承

this和super

this用于指代当前对象

super用于指代当前对象的父类中定义的成员,super是否能够访问取决于范围限定词

1、从语义的角度上说,this用于指代当前对象;super用于指代父类对象

1、this()表示调用另外一个构造器,super()表示调用父类中的某个构造器,()中的参数决定调用的是哪个构造器

2、this.成员属性用于表示当前对象的某个成员,一般用于局部变量和属性名称一致的场景下。super.成员属性用于表示父类中定义的某个属性,一般用于子类中覆盖定义了某个父类属性的场景下。

3、this.成员方法()用于表示当前对象的某个成员方法;super.成员方法()用于表示当前类的父类中定义的某个成员方法,一般用于覆盖定义时【就近原则】。

4、在static方法中不允许使用this/super之类关键字

interface(接口):java类中不允许多继承只允许单继承,但是在接口中可以多继承,类在实现接口的时候也可以实现多个接口,接口中的方法默认是抽象的,所以在实现接口时需要将抽象方法具体化,如果类中的两个接口中的抽象方法,方法名、参数、返回值类型是一样的,在类中只需要实现一种方法即可。

static

	用于修饰成员,包括成员属性【类属性或者静态属性】、成员方法【类方法或者静态方法】
  • 随着类加载,随着类消失
  • 优先于对象,用类名直接访问

被static修饰的,可以不用对象调用 ,随着类的加载自动执行,优先于对象,可以用类名直接调出

static属性是当前类的所有对象所共有的共同属性(只有一个,而普通属性各个对象都有自己的,相互隔离),任何一个当前类对象修改这个属性,所有其他类对象的这个属性都会受影响

执行顺序: 静态属性—属性—构造器

访问的方式
可以使用“类名.静态属性名”或者“对象名.静态属性名”的方式进行访问

猜你喜欢

转载自blog.csdn.net/qq_45874107/article/details/112691991