當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Sealed用法及代碼示例


在Java中,我們有抽象類的概念。由於這些類的對象無法實例化,因此必須從這些類繼承。另一方麵,Java中有一個final類的概念,它不能被任何其他類繼承或擴展。如果我們想限製可以從特定類繼承的類的數量怎麽辦?答案是密封類。因此,密封類是一種限製可以繼承給定類的類數量的技術。這意味著隻有程序員指定的類才能從該特定類繼承,從而限製對其的訪問。當一個類被聲明為密封時,程序員必須指定可以繼承它的類的列表。 Java 中密封類的概念是在 Java 15 中引入的。

創建密封類的步驟

  • 定義您想要製作印章的類。
  • 將“sealed”關鍵字添加到類中,並使用“permits”關鍵字指定允許哪些類繼承它。

示例

sealed class Human permits Manish, Vartika, Anjali
{
public void printName()
{
System.out.println("Default");
}
}
non-sealed class Manish extends Human
{
public void printName()
{
System.out.println("Manish Sharma");
}
}
sealed class Vartika extends Human
{
public void printName()
{
System.out.println("Vartika Dadheech");
}
}
final class Anjali extends Human
{
public void printName()
{
System.out.println("Anjali Sharma");
}
}

上麵例子的解釋:

  • 人類是的父類馬尼什,瓦爾蒂卡,安賈利。這是一個密封類;其他類不能繼承它。
  • 馬尼什,瓦爾蒂卡, 和安賈利是 的子班人類類,並且有必要使它們密封,非密封的, 或者最後。密封類的子類必須是密封的、非密封的或最終的。
  • 如果除任何其他類別馬尼什,瓦爾蒂卡, 和安賈利試圖繼承人類類,它會導致編譯器錯誤。

代碼實現

Java


import java.lang.*;
sealed class Human permits Manish, Vartika, Anjali
{   
    public void printName()
    {
        System.out.println("Default");
    }
}
non-sealed class Manish extends Human
{
    public void printName()
    {
        System.out.println("Manish Sharma");
    }
}
sealed class Vartika extends Human
{
    public void printName()
    {
        System.out.println("Vartika Dadheech");
    }
}
final class Anjali extends Human
{
    public void printName()
    {
        System.out.println("Anjali Sharma");
    }
}
public class Main
{
    public static void main(String[] args)
    {   
        Human h1 = new Anjali();
        Human h2 = new Vartika();
        Human h3 = new Manish();
         
        h1.printName();
        h2.printName();
        h3.printName();
    }
}

輸出:

Code and Output in IDEOutput Terminal



相關用法


注:本文由純淨天空篩選整理自elite_programmer大神的英文原創作品 Sealed Class in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。