Java-Final类
时间:2020-02-23 14:36:35 来源:igfitidea点击:
在本教程中,我们将学习Java编程语言的Final类。
在先前的教程中,我们了解了最终变量和最终方法。
因此,我们知道,如果要创建一个常量,则可以声明一个最终变量。
而且,如果我们想防止方法重写,那么可以定义一个最终方法。
Final类
如果我们想防止某个类被继承,则可以将该类设置为"最终"。
语法
final class MyClass { //some code goes here... }
其中,MyClass是类的名称,由于我们使用的是final关键字,因此无法继承。
注意!如果一个类被声明为" final",则其所有方法都隐式声明为final。
我们仍然可以实例化final类的对象。
例子1
在以下示例中,我们将Hello
类声明为final
。
//this class can't be inherited //as we are using final final class Hello { void greetings() { System.out.println("Hello World"); } } //inheriting Hello class is not allowed /** * class Awesome extends Hello { * //some code goes here... * } */ //main class public class Example { public static void main(String[] args) { //create an object Hello obj = new Hello(); //calling method obj.greetings(); } }
$javac Example.java $java Example Hello World
如果我们尝试继承Hello类,则会收到以下错误。
$javac Example.java Example.java:10: error: cannot inherit from final Hello class Awesome extends Hello { ^ 1 error
示例2
在以下示例中,我们有一个不能继承的最终类Box
。
我们还有一个GiftBox
类,它使用Box
类的方法。
我们将Box类的对象传递给GiftBox类,以利用其getVolume()方法的帮助。
有关方法的更多信息,请检查传递的对象作为方法教程的参数。
//this class is declared as final //so it can't be inherited final class Box { public double getVolume(double length, double width, double height) { return length * width * height; } } class GiftBox { //member variables private double length; private double width; private double height; //constructor with parameters GiftBox(double length, double width, double height) { //initialising the variables this.length = length; this.width = width; this.height = height; } //this method takes Box object as argument //and using the Box getVolume method //it prints the volume of the GiftBox public void printVolume(Box bObj) { double volume = bObj.getVolume(this.length, this.width, this.height); System.out.println("Volume of the GiftBox: " + volume); } } //main class public class Example { public static void main(String[] args) { //instantiate object Box bObj = new Box(); GiftBox obj = new GiftBox(5, 4, 3); //output obj.printVolume(bObj); } }
$javac Example.java $java Example Volume of the GiftBox: 60.0