今天复习了Java基础知识的final和abstract两个修饰符,总结如下:
final 用来修饰类、属性和方法 ;被修饰的都是不能再修改了,最终了,到头了。
1、final修饰类,这个类不能被继承。例如:String,StringBuffer,System。
2、final修饰方法,此方法不能被重写。如Object类中的getClass()方法。
3、final修饰一个属性,此属性就是一个常量,一旦被初始化赋值之后,是不能再被修改的。习惯上用大写字母来声明这个常量。
常量赋值方法:
①此常量不能使用默认的初始化方法 例:final int I; 这样默认方法是不对的。
②可以用显示的方法赋值,可以用代码块赋值,也可以用构造器赋值。
final int I = 100 ; 这样是可以的
{ I = 1000; } 代码块赋值
public D(){ I = 1000; } 构造器赋值
abstract 抽象的,可以用来修饰类和方法
不能用来修饰属性,构造器(构造器不能被重写)
不能和private final static 共用
private 子类不能覆盖或者重写声明为private的方法
final final是不能被重写的,abstract是希望被重写的
static static可以直接通过类来调用,但是abstract方法是没有方法体的
1、abstract修饰的类是抽样类
此类不可以被实例化
此类有构造器(所有的类都有构造器)
2、abstract修饰的方法是抽象方法
①格式:没有方法体,包括{ } 例如:public abstract void eat();
②抽象方法只保留方法的功能,具体的实现交给子类,子类需要重写此抽象方法;
③若子类继承抽象类,并重写了抽象类的所有抽象方法,则此子类可以看成是一个实体类,可以被实例化;
④若子类继承抽象类,没有重写抽象类的全部抽象方法,意味着此类中仍有抽象方法,所以此类必须被定义为abstract类。