static:

1、通常用于修饰方法和变量,static修饰的方法和变量归类所有,可以用类.方法名和类.变量名直接使用

2、static修饰的方法不能在非static的中直接调用,要实例化类对象才能调用

3、static修饰的变量比如:public static int a=5;

会在内存中只开辟一个空间,表名这是一个全局变量,不会再创建新的空间,static修饰的int等类型的值是可以改变的。

final:

1、final修饰类时,表名这个类已经很完美了,所以不需要被重写和继承。

2、final修饰方法时,表示这个方法也很完美,不需要被重写,但是子类可以继承直接使用。

3、final修饰属性(对象或者叫变量)时:

final修饰8种基本类型的变量时,变量的值不可以改变。

final修饰对象时,对象的值可以 对象名.append(""),但是不可以再实例化一次该对象。

final和abstract不可以共用:原因1:final类表示完美不需要继承重写,abstract类表示要子类继承。原因2:修饰方法时:final表示完美

不需要重写,只能子类继承使用,而abstract中的方法没有东西,所以并不完美。以上两点都是冲突的。故不成立。

abstract(抽象):

解释:在java种,对象是通过类来描绘的,但是有一种类叫做抽象类,不用来描绘对象。

1、abstract修饰类时,表明这是一个抽象类,抽象类不可以实例化对象,但是可以被继承,子类创建实例化对象来调用方法。

2、抽象类中可以有main方法,也可以有普通方法,又可以没有抽象方法,但是有抽象方法的类一定是抽象类。

3、子类继承了抽象类,就必须继承父类的抽象方法,非抽象方法不要求继承,如果子类是抽象类的话,也可以不继承父类的抽象方法。

4、abstract修饰方法时候,如下:public abstract int check();抽象方法没有方法体;可以由子类重写来具体实现。

5、抽象类是可以继承普通类的。

接口(interface):

1、接口可以看作一个特殊的抽象类,但是两个是不同的概念,类描述对象的属性和方法,接口则包含类要实现的方法。

通常把接口中的abstract省略。

2、接口的实现类必须实现接口中的所有方法。

3、抽象类也可以实现接口,接口可以继承接口,毕竟接口也是一个特殊的抽象类,既然是抽象类为什么不能继承类呢?

4、既然我们知道接口是一个特殊的抽象类,所以接口和抽象类一样不能实例化对象。

5、接口不能包含成员变量,除了 static 和 final 变量。