更多 Java 知识总结查看我的语雀知识库:https://www.yuque.com/zhangshuaiyin/java
里面有更多Java 知识点总结和面试题
this、super
- this 关键字代表当前类的实例对象的引用;
- super 关键字代表当前类的父类实例对象的引用;
- this() 方法代表当前类的构造方法,可以重载不同参数;
- super() 方法代表当前类父类的构造方法,可以重载不同参数;
- this(),super() 方法必须放在构造器的第一行(都要在第一行,所以不可能同时出现);
final
final 关键字可以用来修饰类、方法、变量。
- final 修饰类:表示这个类不能被继承,final 类中的所有成员方法都会被隐式地指定为 final 方法;
- final 修饰方法:表示这个方法不能被重写;
- fianl 修饰变量:表示这个变量赋值后不能被修改;
a. 对于基本数据类型,数值不能被改变;
b. 对于引用数据类型,引用不能被改变;
拓展:final 和 abstract 是互斥的关系,不能同时用于修饰类或方法。
abstract
abstract 关键字可以用来修饰类和方法。修饰的类称为抽象类,修饰的方法称为抽象方法。
抽象类
抽象类的核心意义是为了被继承,使得子类实现抽象方法完成类似的功能。抽象类体现的是模板思想,部分实现,部分抽象。
- 抽象类不能被实例化,即不能创建对象;
- 抽象类内部和普通类功能相同,可以定义成员变量、构造方法、代码块、普通成员方法、内部类等;
- 抽象类的子类必须重写父类的所有抽象方法,否则子类也必须定义为抽象类;
抽象方法
抽象方法只有方法签名,没有方法体,签名使用 abstract 修饰。拥有抽象方法的类必须定义为抽象类。
interface
interface 是声明接口的关键字,接口是更加抽象的抽象类。
- 接口中只能定义常量和抽象方法(1.8之前),即属性默认都是由 public static final 修饰的,方法默认都是由 public abstract 修饰的;
- 接口之间可以多继承;
- 类和接口之间可以多实现;
- 实现接口的类必须重写接口中的所有抽象方法;
JDK 1.8 接口的变化:引入了默认方法和静态方法;
JDK 1.9 接口的变化:引入了私有方法和私有静态方法;
static
static 关键字可以用来修饰类、方法、代码块、变量。
- static 修饰的类和方法是属于类本身的,与类一起加载一次;(被所有实例对象共享)
- 静态代码块(静态方法)中只能访问静态变量;