導航:首頁 > 編程語言 > javastatic弊端

javastatic弊端

發布時間:2023-03-08 13:36:44

① 多繼承有什麼壞處,為什麼java搞單繼承,介面為什麼可以擯棄這些壞處

多繼承雖然能使子類同時擁有多個父類的特徵,但是其缺點也是很顯著的,主要有兩方面:
(1)如果在一個子類繼承的多個父類中擁有相同名字的實例變數,子類在引用該變數時將產生歧義,無法判斷應該使用哪個父類的變數。例如:
類ClassA:

public class ClassA {
protected int varSame = 0;
}

類ClassB:

public class ClassB {
protected int varSame = 1;
}

子類ClassC:(假設允許類與類之間多繼承)

public class ClassC extends ClassA, ClassB {
public void printOut() {
System.out.println(super.varSame);
}
public static void main(String[] args) {
ClassC classC = new ClassC();
classC.printOut();
}
}

上面程序的運行結果會是什麼呢?輸出0還是1?
(2)如果在一個子類繼承的多個父類中擁有相同方法,子類中有沒有覆蓋該方法,那麼調用該方法時將產生歧義,無法判斷應該調用哪個父類的方法。例如:
類ClassA:

public class ClassA {
public void printOut() {
System.out.println(0);
}
}

類ClassB:

public class ClassB {
public void printOut() {
System.out.println(1);
}
}

子類ClassC:(假設允許類與類之間多繼承)

public class ClassC extends ClassA, ClassB {
public static void main(String[] args) {
ClassA classA = new ClassC();
classA.printOut(); // ------------------------- A行
ClassB classB = new ClassC();
classB.printOut(); // ------------------------- B行
ClassC classC = new ClassC();
classC.printOut(); //------------------------- C行
}
}

上面程序的運行結果會是什麼呢?A、B、C三行的輸出是0還是1?
正因為有以上的致命缺點,所以java中禁止一個類繼承多個父類;

在介面中不能有實例變數,只能有靜態的常量,不能有具體的方法(包含方法體),只能有抽象方法,因此也就摒棄了多繼承的缺點。
對於一個類實現多個介面的情況,因為介面只有抽象方法,具體方法只能由實現介面的類實現,在調用的時候始終只會調用實現類的方法(不存在歧義),因此不存在 多繼承的第二個缺點;而又因為介面只有靜態的常量,但是由於靜態變數是在編譯期決定調用關系的,即使存在一定的沖突也會在編譯時提示出錯;而引用靜態變數一般直接使用類名或介面名,從而避免產生歧義,因此也不存在多繼承的第一個缺點。
對於一個介面繼承多個父介面的情況也一樣不存在這些缺點。

② Java中多態的優缺點是什麼

多態的好處:擴展性強,父類的變數可以賦值不同的子類對象,而調用不同的子類重寫的方法
多態的弊端:不能使用子類特有的功能
這就是Java多態的優缺點了,想學習Java,自學看黑馬程序員,有視頻,有學習路線,讓你學習不迷茫!

③ java項目中方法都用靜態方法有什麼弊端

以上是Java編程性能優化中的一點,合理的適時的使用靜態方法會提高Java性能。關於Java編程性能優化詳細內容,參考:

④ java中什麼時候該用static修飾方法有什麼好處或者壞處

當一個方法或者變數需要初始化載入,或者是經常被調用的時候可以加上static。
用static修飾專的方法可以用類名屬直接調用,不用的一定要先實例化一個對象然後才可以調用
比如 person這個類裡面有一個方法public static add(){}
那麼可以直接用person類調用 person.add();當然也可以用下面的方法先出一個對象在調用也是可以
如果這個方法前面沒有static 比如 public add(){}
那麼先要person p=new person();
然後用p.add();
類載入器在載入這個類的時候就已經實例化了這個類。
壞處:初始化載入,比較占內存,所以不經常用的方法,不建議加此關鍵字。

⑤ Java靜態代理和iOS代理模式這兩個概念的理解上的疑惑

看了JAVA版的設計模式的 代理模式 和IOS @protrol 比較,java 的看了都暈了。不完全一致,委託和代理 稱呼上就好像反的。用JAVA 的中介面 在view中實現方法,就要把介面中所有的方法都復寫一下,這個不太好用, 還不知道其它什麼模式來實現像Ios @protrol 的功能。

⑥ java中什麼時候應該用static修飾方法有什麼好處或者壞處

當一個方法或者變數需要初始化載入,或者是經常被調用的時候可以加上static。x0dx0a用static修飾的方法可以用類名直接調用,不用的一定要先實例化一個對象然後才可以調用x0dx0a比如 person這個類裡面有一個方法public static add(){}x0dx0a那麼可以直接用person類調用 person.add();當然也可以用下面的方法先出一個對象在調用也是可以x0dx0a如果這個方法前面沒有static 比如 public add(){}x0dx0a那麼先要person p=new person();x0dx0a然後用p.add();x0dx0a類載入器在載入這個類的時候就已經實例化了這個類。x0dx0a壞處:初始化載入,比較占內存,所以不經常用的方法,不建議加此關鍵字。

閱讀全文

與javastatic弊端相關的資料

熱點內容
word插入excel圖表 瀏覽:690
xp系統搜索不到本地文件 瀏覽:39
什麼網站可以找到拼團去西藏 瀏覽:247
javatask 瀏覽:50
MFC的文件名 瀏覽:972
cad自動保存的文件怎麼關閉 瀏覽:667
zip文件密碼多少 瀏覽:486
編程培訓哪些好 瀏覽:324
如何把文件夾內容變成文檔 瀏覽:509
小火箭幼兒編程怎麼拿積分 瀏覽:158
火車票時刻表及票價資料庫 瀏覽:94
求平均值java 瀏覽:767
linux如何分屏顯示 瀏覽:257
手機可以直接填寫pdf文件么 瀏覽:554
linux虛擬光碟機軟體 瀏覽:836
米2s最好的版本 瀏覽:640
小米6檢測工具下載 瀏覽:540
桌面創建不了文件夾怎麼回事 瀏覽:894
qq古代頭像傷感圖片 瀏覽:797
wpspdf文檔如何在文件夾預覽 瀏覽:15

友情鏈接