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

