一 点睛
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继承SuperClass
class 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.<init>(InheritRestrict.java:18)
at InheritRestrict.main(InheritRestrict.java:26)