我们可以在Java扩展 final 方法吗?
Java的final方法可以扩展,但除了要考虑的主要概念之外,扩展意味着您可以扩展或不扩展具有final方法的特定类,但您不能覆盖该final方法。不能扩展 final 方法的另一种情况是包含 final 方法的类也是 final 类。
方法:
在这里,我们将讨论两种方法,以满足我们刚才所说的,以确定如何 扩展了最终方法。
- 没有越权
- 与凌驾
执行:
- 'GFGParent' 类有一个随机命名为 'dataDisplay()' 的最终方法,它在这里被创建为最终方法。
- 'GFG' 类扩展了 GFGParent 但程序执行时没有任何错误,因此我们可以扩展 final 方法但不能覆盖它。
- 在这里,如果您已将 GFGParent 类设为 final,您将不会扩展 final 方法,因为我们无法继承 final 类。
示例 1
Java
// Java Program to Illsutarte Final Method Extension
// Importing input output classes
import java.io.*;
// Class 1
// Child class
// Main class
class GFG extends GFGParent {
// Main driver method
public static void main (String[] args) {
// Print statement
System.out.println("GFG!");
// Creating an object og parent class in child class
// inside the main() method
GFGParent gfg = new GFGParent();
// Calling the method created in parent class
gfg.dataDisplay();
}
}
// Helper class
// Parent class
class GFGParent {
public final void dataDisplay () {
System.out.println("Data Structure");
}
}
Java
// Java Program to Illsutarte Final Method Extension
// Where method Overrides
// Importing input output classes
import java.io.*;
// Class 1- Parent class
class GFGParent {
// Method inside parent class
public final void dataDisplay()
{
System.out.println("Data Structure");
}
}
// Class 2
// Child class
// Main class
class GFG extends GFGParent {
// Method 1
// Created in order to illustrate overridden method/s
public final void dataDisplay()
{
// Print statement whenever this message is called
System.out.println("Data Structure 2");
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Print statement
System.out.println("GFG!");
// Creating an object of parent class and
// calling method of child class over it.
GFGParent gfg = new GFGParent();
gfg.dataDisplay();
}
}
输出
GFG!
Data Structure
示例 2
我们将在这里进行的唯一更改是我们只是尝试覆盖子类中的方法。
Java
// Java Program to Illsutarte Final Method Extension
// Where method Overrides
// Importing input output classes
import java.io.*;
// Class 1- Parent class
class GFGParent {
// Method inside parent class
public final void dataDisplay()
{
System.out.println("Data Structure");
}
}
// Class 2
// Child class
// Main class
class GFG extends GFGParent {
// Method 1
// Created in order to illustrate overridden method/s
public final void dataDisplay()
{
// Print statement whenever this message is called
System.out.println("Data Structure 2");
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Print statement
System.out.println("GFG!");
// Creating an object of parent class and
// calling method of child class over it.
GFGParent gfg = new GFGParent();
gfg.dataDisplay();
}
}
输出:它生成一个编译时错误。