final是最终的意思
1.final修饰类
被final修饰的类不能被继承,所以abstract 类不能被定义成final,因为abstract类的存在就是为了子类去实例化,抽象类不能被实例化
2.final修饰的方法
被final修饰的方法不能被重载,所以在抽象类中,是不能把抽象方法定义为final型
但是在抽象类中非抽象方法可以被定义为final型
例如:
public final abstract class A{} //是不允许的
public abstract class A{
public final abstract void test(); //是不允许的
}
public abstract class A{
public final abstract void test(); //是不允许的 因为该方法必须被子类重写,所以不能被定义成final
public final void test2(); //是允许的 因为在方法不必被子类重写
}
public class A{
public final A(){// 是不允许的 构造方法是不能被final的
}
}