您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第6章:面向对象(高级)】_final关键字
发布时间:2020-12-16 16:36:39编辑:雪饮阅读()
final修饰的类不能被继承
所以final在java中又被称为终结器。
final class A{}
class B extends A{}
public class Hello{
public static void main(String args[]){}
}
D:\>javac Hello.java
Hello.java:2: 无法从最终 A 进行继承
class B extends A{}
^
1 错误
final修饰的方法在子类中无法被覆写
class A{
public final void print(){}
}
class B extends A{
public void print(){}
}
public class Hello{
public static void main(String args[]){}
}
D:\>javac Hello.java
D:\>javac Hello.java
Hello.java:5: B 中的 print() 无法覆盖 A 中的 print();被覆盖的方法为 final
public void print(){}
或许也有意外
class A{
private final void print(){}
}
class B extends A{
public void print(){}
}
public class Hello{
public static void main(String args[]){}
}
D:\>javac Hello.java
D:\>java Hello
其实这里之所以可以成功编译并且能正常运行,这是因为这种行为看起来是方法的覆写,但其实和父类没有关系,类似于另外一种方法,这种特殊情况存在于父类方法private并且子类试图“覆写”为public,或许还有其它特殊情况,这里就发现了这一种情况。
final修饰的变量不能被修改(常量)
class A{
private final String name="snowDrink";
public void print(){
this.name="duMinJie";
}
}
public class Hello{
public static void main(String args[]){}
}
关键字词:java,面向对象,final