java中super关键字和this比较以及final关键字的理解

1.super关键字和this关键字不同

  • this代表本类对象的引用
  • super代表父类对象存储空间的标识(可以简单的理解为父类对象的引用)

2.用法上类似

  • 访问成员变量
    this.成员变量
    super.成员变量
  • 访问构造方法
    this(...)
    super(...)
  • 访问成员方法
    this.成员方法()
    super.成员方法()

代码例子

class A{
      private int age ;
      private String name;
      public A(){
      }
      public A(int age , String name){
            this.age = age ;
            this.name =name;
      }
      public void show(){
            System.out.println("姓名:"+name+"年龄:"+age);
      }
}
class B extends A {
      public B(){
            super();//默认调用父类的构造方法
      }
      public void print(){
            super.show();//用super关键字调用父类的方法
            System.out.println("我是B ");
      }
}
public class Test{
     public static void main(String []  args){
            B b = new B();//创建一个B类对象
            b.print();//通过对象访问方法
      }
}

3.final关键字

final 关键字是最终的意思,可以修饰类,成员变量,成员方法。
1.修饰类,类类不能被继承
2.修饰变量,变量就标称了常量,只能被赋值一次修饰方法,方法不能被重写**。

final关键字面试题

1.final修饰局部变量

  • 在方法内部,该变量不可以被改变
  • 在方法声明上,分为基本类型和引用类型作为参数的情况
  • 基本类型,是值不能被改变
  • 引用类型,是地址值不能被改变
  • final修饰变量的初始化时机
    在对象构造完毕前即可