2010-08-12 35 views

回答

17

這些是兩個完全不同的東西。

導入一個類,使它可以使用該類,而無需限定當前正在編寫的類中的全名。

import java.util.Scanner 
// now you can use the Scanner class in your code like so: 
Scanner stdin = new Scanner(System.in); 
// instead of having to do 
java.util.Scanner stdin = new java.util.Scanner(System.in); 

擴展類正在創建一個新類,它是其他類的子類。這將允許您添加或更改正在擴展的類的功能。

// this is a very contrived example 
public class EmptyList extends ArrayList { 
    @Override 
    public boolean add(Object o){ 
     return false; // will not add things to a list 
    } 
} 
+0

不會編譯,添加必須返回true或false! – 2010-08-12 13:52:05

+0

@Tim,爲什麼不編譯?僅僅因爲缺少返回值? – jjnguy 2010-08-12 13:53:32

+0

〜booelan也有錯字。 – 2010-08-12 14:02:42

3

時,在你的類,你引用類,是不是在同一個包類,則需要進口另外一個。

當你想使用oop inheritance時,你的擴展了一個類 - 即你的類具有超類的功能+無論你在類中寫什麼。

這兩件事情是非常不同的,所以也許你應該創建一些簡單的程序,併爲自己看到明顯的差異。

-3

導入是一個可選子句,用於聲明您將在您的潛在類接口或枚舉中使用哪個類。擴展表示,她可以使用該父類的功能。

要擴展公共類,您需要首先導入它。

+0

這幾乎是完全錯誤的。您可以在不導入的情況下擴展一個類。您可以在不導入它的情況下使用某個類,因此導入不會形成「意向聲明」。擴展在訪問權限之外有許多分支,只允許一個類訪問父級的'protected'成員,並且在任何情況下都不需要使用父級的'public'功能。 – 2010-08-12 14:08:27

+0

@Andrzej Doyle:我們可以說不用導入關鍵字來擴展類,而是添加整個路徑。你對這個「意向聲明」是真實的。換句話說,如果我寫這樣的smtg「擴展班級公開課,你應該導入它或使用完整的路徑」,這是一個巨大的我的大腦捷徑。我碰巧;-)。 – 2010-08-12 14:27:53

3

導入意味着您可以以非限定的方式引用它。例如

import java.util.List; 

List list = ... 

而非

java.util.List list = 

延伸的是完全不同的裝置,以及從類

1

擴展
擴展手段增強現有的功能繼承行爲和結構類。 導入
導入意味着使用一些API作爲助手到你的課堂去設計。

4

導入不會改變你的程序,它只是允許你寫出聲明類的簡短形式。在你自己的類中,你可以使用Java庫中任何包中的任何其他類。
假設你想使用Scanner類從鍵盤輸入數據。而不是寫作java.util.Scanner sc = new java.util.Scanner(System.in);,你可以簡單地寫Scanner sc = new Scanner(System.in);
如果導入包或包後跟類名在類的頂部是進口java.util.*;或我mport java.util.Scanner;

擴展類是不作爲進口類一樣簡單。當你擴展一個類時,你將擴展類的所有實例(字段)和方法添加到你自己的類中。換句話說,您可以訪問擴展類的所有字段和方法。

+0

不是私人的。 (爲什麼回答這樣的舊問題,已經有一個很好的,被接受的答案?) – 2012-10-14 13:19:45

1

首先,進口是用於增加編譯器的效率,找到正確的類 的主要區別,採用的是進口的使用聚合(已-A)的概念&在擴展我們使用(IS-A)的關係
在has-a或import中,我們類的obj並不維護與導入類的生存關係,我們需要獲取我們想要在我們的應用程序中使用的特定類的obj ,但是在擴展我們班的obj的時候是make與父類的生活時間關係... HAPPY如果我對其他人明智地給予正確回答......

1

導入一個類爲我們提供了訪問其預定義的方法.we cn不要改變這些方法,但我們可以使用它們。擴展一個類意味着我們可以重寫繼承的類中定義的方法。

0

軟件包導入只是一種告訴類加載器在哪裏尋找類並區分具有相同名稱的類的方法。類擴展告訴JVM你的類之間的等級關係。 OO規則一旦找到類就適用。

0

簡單:

進口是指擁有關係。用關鍵字

延伸指的是是一個的關係。用關鍵字延伸

請參考this鏈接的例子。

+0

鏈接已經死了... – 2014-01-22 11:40:46

+0

編輯@KorayTugay :) – ram 2014-01-22 11:48:49

相關問題