在java技術中主要使用oops概念構建,抽像也是oops(物件導向程式設計系統)概念之一,被表示為隱藏資料的過程,即它不會顯示一些細節,但會顯示使用者螢幕僅顯示與隱藏與資料相關的相關資訊。 java中的抽像我們可以在「抽象類別和介面」的幫助下使用這些概念,這兩種類型將在java中同時使用,或者根據使用者的要求,我們可以使用任何類型,有時兩個進程都會同時使用在程式中使用。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
文法
抽象將用於 java 程式中使用的兩種不同類型的語法。
import packages; abstract class names { -----some logic codes--- } interface names { ----Some logic codes---- }
以上程式碼是java程式中適用抽象的基本語法。當我們使用抽象類別時,它將同時使用抽象和非抽象方法,但介面僅接受非抽象方法。這兩個概念之間有一些相似的差異。
在抽像中,它隱藏了java物件中不需要的細節,它只顯示有關主題的相關信息,它主要與映射介面中稱為map的java集合介面相比,它具有像hashmap這樣的派生類,它將儲存鍵值對使用者資料使用get() 和put() 等方法從後端儲存和檢索資料。
抽象主要提供兩種不同的方式1.資料抽象化和2.控制抽象。在資料抽像中,用於建立困難的資料類型,它將用於在螢幕上公開一些有用的內容,包括資料類型。在控制抽像中,用其他程式語言編寫某些資料的過程是在不同的場景中多次編寫用於儲存和檢索資料的程式碼,因此這些類型的資料將被識別並與單一工作組合起來作為控制抽象。
雖然我們使用介面類型來實現抽象,這意味著它很可能必須實現這些,但在抽象類別中,在抽象過程中並未完全實現,它必須部分完成。如果我們使用抽象類,如果我們想透過擴展它來將其用於完全或具體這些類別中的實例,則無法建立這些類別的實例。使用抽象,我們聲明的方法實作可能會有所不同,當我們使用 new 運算子建立抽象類別的實例時,它會拋出編譯錯誤。
以下是下面提到的範例:
代碼:
public abstract class Main { private String names; private String city; public Main(String nm, String cty){ this.names=nm; this.city=cty; } public abstract void work(); @Override public String toString(){ return "Names="+this.names+"::City="+this.city; } public void changeName(String newNames) { this.names = newNames; } } public class ClientMain extends Main { private int empId; public ClientMain(String nm, String cty, int id) { super(nm, cty); this.empId=id; } @Override public void work() { if(empId == 0){ System.<em>out</em>.println("Invalid name"); }else{ System.<em>out</em>.println("Employees List!!"); } } public static void main(String args[]){ //coding in terms of abstract classes Main m = new ClientMain("siva","tirupur",1); Main m1 = new ClientMain("raman","chennai",234); m.work(); m1.work(); //using method implemented in abstract class - inheritance m1.changeName("Sivaraman"); System.<em>out</em>.println(m1.toString()); } }
輸出:
代碼:
interface Animals { public void animalSounds(); public void sleep(); } class Sample implements Animals { public void animalSounds() { System.<em>out</em>.println("Animal Sounds"); } public void sleep() { System.<em>out</em>.println("Beep"); } } class ClientMain { public static void main(String[] args) { Sample s = new Sample(); s.animalSounds(); s.sleep(); } }
輸出:
代碼:
@FunctionalInterface interface SquareofNumbers { int numbers(int x); } class ClientMain { public static void main(String args[]) { int a = 6; SquareofNumbers s = (int i)->i*i; int result = s.numbers(a); System.<em>out</em>.println(result); } }
輸出:
上面的三個例子我們使用了抽象類別和介面的基本用法來在java應用程式中實現抽象,最後一個例子我們使用了java中函數式介面的概念來對給定的數字進行平方。函數式介面與介面的概念,但它不允許在程式中使用多個抽象方法,如果假設我們使用了多個抽象方法,則意味著它將拋出諸如“意外的@功能介面註解”之類的錯誤,而我們使用功能介面時,我們也聲明了該註釋它對於有關資料概念的資料非常有幫助,即當我們需要Java 中的元資料技術時,我們使用了稱為註釋的此類技術,並且我們也使用了另一個稱為lambda 表達式的概念,我們在最後一個範例中使用了減少程式碼空間,程式碼的冗餘變得非常簡單,程式的複雜度也降低了,編寫複雜的程式碼很容易理解。
如果我們在類別中定義了任何方法,那麼我們應該將該類別聲明為抽象類,並且如果我們擴展抽象類別並在內部類別中的任何方法中使用,那麼我們必須先實作該類別的所有方法java技術中的抽象類別我們無法建立抽象類別的實例我們不能將抽象類別宣告為java中的final存取修飾符或關鍵字,因為當我們在抽象類別或類別中的任何方法中使用final時,它可以在應用程式的整個執行過程中都不會改變。抽象類別中也不允許使用私有修飾符,它會影響父子關係繼承,在抽象類別中應該會受到影響,因為子類別不允許使用函數/方法.
以上抽象概念是對oops的基本理解,而我們在java技術中實現同樣的概念,它應該與介面和抽象類別一起使用來實現抽象,但在java最新版本中,它可能會根據新功能而有所不同.
以上是Java 中的抽象的詳細內容。更多資訊請關注PHP中文網其他相關文章!