搜尋
首頁Javajava教程關鍵字:抽象擴展,介面實現

Java 抽象關鍵字

abstract關鍵字用於在Java中實作抽象。它是一個非存取修飾符,用於建立抽象類別和方法。

抽象類別的作用是包含抽象方法。但是,它也可能包含非抽象方法。使用abstract關鍵字聲明並且沒有任何實作的方法稱為抽象方法。

語法:-

    abstract class Employee  
    {  
    abstract void work();  
    }   

注意 - 我們不能在非抽象類別中聲明抽象方法。

抽象關鍵字規則
不該做的事情

抽象關鍵字不能與變數和建構子一起使用。
如果類別是抽象類,則無法實例化。
如果一個方法是抽象的,它不包含主體。
我們不能將abstract關鍵字與final一起使用。
我們不能將抽象方法宣告為私有。
我們不能將抽象方法宣告為靜態。
抽象方法無法同步。

要做的(待定)

抽象關鍵字只能與類別和方法一起使用。
抽象類別可以包含建構函數和靜態方法。
如果一個類別擴展了抽象類,它還必須至少實作一個抽象方法。
抽象類別可以包含 main 方法和 Final 方法。
抽象類別可以包含重載的抽象方法。
我們可以將局部內部類別聲明為抽象類別。
我們可以用 throw 子句宣告抽象方法。

什麼是抽象類別:

抽象類別是被宣告為抽象的類別-它可能包含或不包含抽象方法。抽象類別不能實例化,但可以子類別化。

什麼是抽象方法:

抽象方法是在沒有實現的情況下聲明的方法(不帶大括號,後跟分號),如下所示:
抽象無效 moveTo(double deltaX, double deltaY);

*抽象:*

它的主要目標是透過向使用者隱藏不必要的細節來處理複雜性。

僅顯示必要的資料並對使用者隱藏不需要的詳細資訊。

對於抽象類,我們有子類。 這個子類別也可以是抽象類別嗎?
是的,這樣的話,Child類別就不能被實例化了。

參考:https://www.javatpoint.com/abstract-keyword-in-java

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

範例2:

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

package chennai.velachery;

public class Child1 extends Parent1{

    public static void main(String[] args) {
//      Child1 ch = new Child1(); 
//      ch.cook();
//      ch.chat_with_friends(); 
//      ch.watch_tv();
//      ch.work();

        Child1 ch = new Child1(); 
        //Dynamic Binding 
        //Parent Class Reference points to Child class Memory
        Parent1 parent = new Child1();  

        parent.watch_tv();
        parent.chat_with_friends();
        parent.cook();
        //parent.work(); 
    }
    public void watch_tv()
    { //Runtime Polymorphism
        System.out.println("Watching OTT");
    }

    @Override
    public void cook() {
        // TODO Auto-generated method stub
        System.out.println("Cooking");

    }

    public void work()
    {
        System.out.println("Java Projects");
    }

}

Java 介面

Java中的介面是類別的藍圖。它有靜態常數和抽象方法。

Java中的介面是一種實作抽象的機制。 Java介面中只能有抽象方法,不能有方法體。它用於在Java中實現抽象和多重繼承。

換句話說,你可以說介面可以有抽象方法和變數。它不能有方法體。

Java介面也代表IS-A關係。

它不能像抽象類別一樣被實例化。

為什麼要使用Java介面?

使用介面主要有三個原因。下面給出了它們。

Image description

如何聲明介面?

介面是使用interface關鍵字聲明的。它提供了完全的抽象;表示介面中的所有方法都以空體聲明,並且所有欄位預設都是public、static和final。實作介面的類別必須實作介面中聲明的所有方法。

*介面:*

介面是一組具有空體的相關方法
100% 抽象:

文法:

    abstract class Employee  
    {  
    abstract void work();  
    }   

範例:

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

參考:https://www.javatpoint.com/interface-in-java

Java 中的擴充與實作:

在Java中,extends關鍵字用於繼承父類別的所有屬性和方法,而implements關鍵字用於實作介面中定義的方法。

**
extends 和implements 關鍵字**

之間的區別

Image description

Java 中的「extends」關鍵字

在Java中,extends關鍵字用於指示正在定義的類別是透過繼承從基底類別派生的。所以基本上,extends關鍵字用於將父類別的功能擴展到子類別。在Java中,由於二義性,多重繼承是不允許的。因此,一個類別只能擴展一個類別以避免歧義。

package chennai.velachery;

public class Child extends Parent {


    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Child ch = new Child(); 
        ch.getJob();
        ch.studyWell();
        Child.display();
    }

    @Override //Annotation : Metadata
    //Data about data
    void getJob() {
        // TODO Auto-generated method stub

    }


}

Java 中的「implements」關鍵字

在Java中,implements關鍵字用來實作介面。介面是一種特殊類型的類,它實作了完全抽象並且僅包含抽象方法。要存取介面方法,介面必須由另一個類別使用implements關鍵字“實作”,並且方法需要在繼承介面屬性的類別中實作。由於介面沒有方法的實現,因此一個類別可以一次實現任意數量的介面。

/

package chennai.velachery;

public abstract class Parent1 {

    public void watch_tv()
    {
        System.out.println("Watching TV");
    }
    public void chat_with_friends()
    {
        System.out.println("Chatting with neighbours");
    }
    public abstract void cook(); 

}

參考:https://www.geeksforgeeks.org/extends-vs-implements-in-java/

範例:

    abstract class Employee  
    {  
    abstract void work();  
    }   

package chennai.velachery;

public abstract class Parent {

    abstract void getJob();

    void studyWell()
    {
        System.out.println("Focus On Maths, Science"); 
    }
    static void display()
    {
        System.out.println("Hi");
    }
    public static void main(String[] args) {
        Parent.display();
//      Parent pp = new Parent(); 
//      pp.display();
//      pp.studyWell(); 
//      pp.getJob();

    }



}

抽象類別 u>
0 到 100% 抽象

抽象關鍵字

非靜態變數

可以在場

*
*與介面
100% 抽象化
沒有抽象關鍵字
所有變數都是靜態的,
最終公開

以上是關鍵字:抽象擴展,介面實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Java仍然是基於新功能的好語言嗎?Java仍然是基於新功能的好語言嗎?May 12, 2025 am 12:12 AM

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)Lambdaexpressionsenhancecodereadabilityandenablefunctionalprogramming.2)Streamsallowforefficientdataprocessing,particularlywithlargedatasets.3)ThemodularsystemintroducedinJava9im

是什麼使Java很棒?關鍵特徵和好處是什麼使Java很棒?關鍵特徵和好處May 12, 2025 am 12:11 AM

Javaisgreatduetoitsplatformindependence,robustOOPsupport,extensivelibraries,andstrongcommunity.1)PlatformindependenceviaJVMallowscodetorunonvariousplatforms.2)OOPfeatureslikeencapsulation,inheritance,andpolymorphismenablemodularandscalablecode.3)Rich

前5個Java功能:示例和解釋前5個Java功能:示例和解釋May 12, 2025 am 12:09 AM

Java的五大特色是多態性、Lambda表達式、StreamsAPI、泛型和異常處理。 1.多態性讓不同類的對象可以作為共同基類的對象使用。 2.Lambda表達式使代碼更簡潔,特別適合處理集合和流。 3.StreamsAPI高效處理大數據集,支持聲明式操作。 4.泛型提供類型安全和重用性,編譯時捕獲類型錯誤。 5.異常處理幫助優雅處理錯誤,編寫可靠軟件。

Java的最高功能如何影響性能和可伸縮性?Java的最高功能如何影響性能和可伸縮性?May 12, 2025 am 12:08 AM

java'stopfeatureSnificallyenhanceItsperformanCandScalability.1)對象 - 方向clincipleslike-polymormormormormormormormormormormormorableableflexibleandscalablecode.2)garbageCollectionAutectionAutoctionAutoctionAutoctionAutoctionAutoctionAutoMenateMememorymanateMmanateMmanateMmanagementButCancausElatemention.3)

JVM內部:深入Java虛擬機JVM內部:深入Java虛擬機May 12, 2025 am 12:07 AM

JVM的核心組件包括ClassLoader、RuntimeDataArea和ExecutionEngine。 1)ClassLoader負責加載、鏈接和初始化類和接口。 2)RuntimeDataArea包含MethodArea、Heap、Stack、PCRegister和NativeMethodStacks。 3)ExecutionEngine由Interpreter、JITCompiler和GarbageCollector組成,負責bytecode的執行和優化。

什麼是使Java安全安全的功能?什麼是使Java安全安全的功能?May 11, 2025 am 12:07 AM

Java'ssafetyandsecurityarebolsteredby:1)strongtyping,whichpreventstype-relatederrors;2)automaticmemorymanagementviagarbagecollection,reducingmemory-relatedvulnerabilities;3)sandboxing,isolatingcodefromthesystem;and4)robustexceptionhandling,ensuringgr

必不可少的Java功能:增強您的編碼技巧必不可少的Java功能:增強您的編碼技巧May 11, 2025 am 12:07 AM

Javaoffersseveralkeyfeaturesthatenhancecodingskills:1)對象 - 方向 - 方向上的allowslowsmodelowsmodelingreal-worldentities

JVM最完整的指南JVM最完整的指南May 11, 2025 am 12:06 AM

thejvmisacrucialcomponentthatrunsjavacodebytranslatingitolachine特定結構,影響性能,安全性和便攜性。 1)theclassloaderloader,links andinitializesClasses.2)theexecutionEngineExecutionEngineExecutionEngineExecuteNexeCuteByteCuteByteCuteByTecuteByteCuteByteCuteBytecuteBytecuteByteCoDeinintolachineinstructionsions.3)Memo.3)Memo

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具