1. 程式人生 > >Java基礎(重寫與過載區別,instanceof,equals和==的區別)

Java基礎(重寫與過載區別,instanceof,equals和==的區別)

1.重寫一般是指父類和子類之間,子類重寫了父類的一個方法,當然方法名是一樣的,而且不能改變父類方法的返回值,比如說父類是返回String,子類重寫了這個方法,想返回一個int,那是不行的,也得返回String。

2.過載是一個類裡面,寫了多了同名的方法,各個方法的返回值型別可以不一樣。(要注意區分過載方法可以通過引數列表的個數,型別和順序。)但是不推薦用順序來進行過載,這會讓程式碼可讀性極差。

3.Java中A instanceof B是什麼意思?
===〉instanceof用來判斷記憶體中實際物件A是不是B型別
出現這種情況經常是需要強制轉換的時候
class Dog extends Animal
譬如dog定義了自己的方法wangwang
Animal anAnimal = new Dog();
此時不能直接呼叫anAnimal.wangwang方法
但是可以
if( anAnimal instanceof Dog){
Dog dog = (Dog)anAnimal;
dog.wangwang就可以呼叫了

}

4.equals和==的區別
==操作比較的是兩個變數的值是否相等,對於引用型變量表示的是兩個變數在堆中儲存的地址是否相同,即棧中的內容是否相同。
equals操作表示的兩個變數是否是對同一個物件的引用,即堆中的內容是否相同。
[  術語來講的區別:
1.==是判斷兩個變數或例項是不是指向同一個記憶體空間
equals是判斷兩個變數或例項所指向的記憶體空間的值是不是相同
2.==是指對記憶體地址進行比較
equals()是對字串的內容進行比較
3.==指引用是否相同
equals()指的是值是否相同 ]