一 点睛
final在Java中被称为终结器。
1 在基类的某个方法加了final,那么在子类中该方法被禁止二次“改造”。
2 通过在类的前面添加final关键字,便可以阻止基类被继承。
二 实战1——final标记的方法不能被子类覆写实例
1 代码
class Person{ // 此方法声明为final不能被子类覆写 final public String talk() { return "Person:talk()" ; }}class Student extends Person{ public String talk() { return "Student:talk()" ; }}public class TestFinalDemo{ public static void main(String args[]) { Person S1 = new Student(); System.out.println(S1.talk()); }}
2 运行
3 说明
运行时发生了A JNI has occured错误,这里JNI指的是“Java Native interface(Java 本机接口)”。
三 实战2——用final继承的限制
1 代码
//定义被final修饰的父类final class SuperClass{ String name; int age;}//子类SubClass继承SuperClassclass SubClass extends SuperClass{ //do something}public class InheritRestrict{ public static void main(String[] args) { SubClass subClass = new SubClass(); }}
2 运行
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The type SubClass cannot subclass the final class SuperClass at SubClass.
(InheritRestrict.java:18) at InheritRestrict.main(InheritRestrict.java:26)