1、抽象类:
在Java中当一个类被abstract关键字修饰时,则该类被称为抽象类。
抽象类遵循的原则:
抽象类必须使用abstract关键字进行修饰
抽象类不能被实例化
抽象类可以包含属性,方法(抽象方法和普通方法均可),构造方法,初始化块,内部类,枚举类六大块,不过后面三种现在还不清楚是啥,后面学到补上。
含有抽象方法的类必须定义成抽象类
定义语法:
abstract class <类名>{
[属性声明]
[方法声明]


2、抽象方法:
在Java中当一个类被abstract关键字修饰后,该方法就被称为抽象方法,有抽象方法的类必须定义为抽象类。
定义语法:
[访问修饰符] abstract <返回类型> <方法名>([参数列表]);
注意点:


3、接口:
接口和抽象类很类似,但是它不是类,而是对一组类的规范,在接口中不提供任何实现方法,所有方法都是抽象方法。
接口遵循规则:
修饰符可以使用public或者不写
接口名称应与类名采用相同的命名规则
一个接口可以有多个直接的父接口
接口可以继承接口,但是不能继承类
接口中的方法必须都是抽象方法
接口中没有构造方法
定义接口语法:
[访问修饰符] interface <接口名> {
[定义常量]
[定义抽象方法]

4、接口的实现
因为接口是一种特殊的抽象类所以也不能被实例化,在Java中可以让一个类实现一个或者多个接口,实现接口使用implements,如果一个类实现了多个接口也就意味着它要实现所有接口中的方法。
实现接口的语法:
[访问修饰符] class <类名> [extends 父类名] implements <接口名>{
抽象方法的具体实现
}
注意点:
实现多个接口中间用逗号分隔


5、final修饰符:
final是最后的意思,在Java中提供的final的修饰符用于修饰变量,类和方法。
遵循的规则:
修饰成员属性,可以在声明时赋值,但是必须在构造方法结束前保证对变量进行赋值。
修饰的静态变量:对于静态变量的赋值必须在最后一个静态语句块结束前完成。
修饰引用变量:一旦引用类型的变量被final修饰,那么该引用变量将不能被重新指向其他对象。
修饰方法参数:方法的参数也可以被定义为final,此时参数只能被赋值一次。
