JAVA类的高级特性——this与super关键字、static关键字、final关键字、abstract类与方法

this与super关键字

  • this——用于引用本类中对象的指针(只与对象有关)

只出现在类的非静态方法、构造方法

在本类成员方法、构造方法、set方法中,引用本类成员变量(当类的成员变量名与该成员方法中的局部变量名重复时);

在本类成员方法中,访问方法所在类的当前对象(不太确定使用场景)

在本类构造方法中,访问本类构造方法

this (参数列表);//必须为该构造方法中第一个语句

 

  • super——子类引用父类被屏蔽的成员方法、构造方法、成员变量

在子类成员方法中,引用直接父类的成员变量与成员方法

在子类构造方法中,引用直接父类的构造方法 

super (参数列表);
super.方法名(参数列表);
super.成员方法名

static关键字

1.修饰变量——静态变量 \ 类变量

被类的所有实例共享,内存区域固定

2.修饰方法——静态方法 \ 类方法

不能用this关键字调用

非静态方法:访问静态对象、成员对象

静态方法:只能访问静态对象

3.静态初始化

public class A{
   static{
    静态代码块(只运行一次)
   }
}

先初始化父类静态代码,再初始化子类静态代码,接着初始化父类非静态代码与构造方法,最后执行子类非静态代码与构造方法。

 

final关键字

1.修饰变量——常量

2.修饰方法——不能被子类重写override

3.修饰类——不能被子类继承

 

abstract类与方法

1.抽象类——可以包含或不包含抽象方法

[访问控制符] abstract class 类名{

}

抽象类必须被继承,子类如果不是抽象类,那么必须重写父类中的抽象方法

抽象类不能被实例化,不能new对象,必须通过子类创建对象(接口:多个类的公共规范

public class 实现类(如XXXImpl) implements 接口名{

}

2.抽象方法——必须在抽象类中

[访问控制符] abstract class 类名{

}
[访问控制符] abstract 方法返回值 方法名(参数类型 参数列表);

抽象类必须被继承,子类如果不是抽象类,那么必须重写父类中的抽象方法

 

 

你可能感兴趣的:(学习笔记)