java this 子類調父類,父類再呼叫子類已覆蓋的方法及屬性(又一次理解)
之前一直以為 this關鍵字 是指呼叫者物件,但是這次才真正理解,this代表當前物件,但是指向呼叫者物件,其實就是多型的用法,如下所示:B 繼承了 A,在B 中呼叫A類的方法,在A 中用this 訪問成員變數和方法,此時,如果用this訪問成員變數,如下,this.s ,無論B 子類有沒有 s屬性,又或者s 的修飾符是 private 或者 public ,this.s 永遠會打印出 當前類的 s屬性值,原因:成員變數不能被重寫,不能覆蓋 ;再說,用this訪問方法,如下所示: 在A 中 this.test()
, 請注意,此時,this代表A 類,但是指向B ,如: A a = new B() ; 因為 B 類 重寫了父類的test方法,所以會呼叫B 的test 方法 ; 再如,將A 類的test方法改成 private型別的,此時 this.test()將呼叫A 類的 test方法,因為此時雖然B 類也有test方法,但是這個方法不是重寫A類的方法,是一個自己獨有的方法,因為父類是private私有的型別,子類不能擁有,敬禮!
public class HelloA {
public static void main(String[] args) {
new B().print();
}
}
class B extends A{
private String s = "B" ;
public void print() {
super.print();
}
public String test(){
return "test_B";
}
}
class A { private String s = "A" ; public void print() { System.out.println(this.s); System.out.println( this.test()); } public String test() { return "test_A"; } }
列印結果為:
A
test_B
1,在B中呼叫A類的print方法,在A中 用this呼叫s屬性和test方法,此時,this是 B物件,但是打印出了A中的屬性,呼叫了 B 類的方法, 說明方法可以重寫,屬性不能重寫
2,如果把 A類的test方法改為private,則會呼叫A類的 test方法,原因是因為 B類中的test方法不是重寫的A類的test方法,可以說是一個新的方法,因為A類的test方法是私有的
相關推薦
java this 子類調父類,父類再調用子類已覆蓋的方法及屬性(又一次理解)
views args pop word per ews nds 如果 ext 之前一直以為 this關鍵字 是指調用者對象,但是這次才真正理解,this代表當前對象,但是指向調用者對象,其實就是多態的用法,如下所示:B 繼承了 A,在B 中調用A類的方法,在A 中用this
java this 子類調父類,父類再呼叫子類已覆蓋的方法及屬性(又一次理解)
之前一直以為 this關鍵字 是指呼叫者物件,但是這次才真正理解,this代表當前物件,但是指向呼叫者物件,其實就是多型的用法,如下所示:B 繼承了 A,在B 中呼叫A類的方法,在A 中用this 訪問成員變數和方法,此時,如果用this訪問成員變數,如下,this.s ,
java工具類-接受請求引數,並利用反射呼叫方法
public String a(HttpServletRequest request,HttpServletResponse response) throws JSONException, IOException, ParseException, IllegalAccessException, Ille
layer通過父頁面調用子頁面的方法及屬性
ade als ont clas java title class 提交 orm 引言 在使用layer.js的過程中,需要通過layer.open()以iframe的形式打開特定的頁面,同時需要用layer的按鈕對打開的頁面進行提交及重置操作,但是苦於不知如何在父頁面調用
子函式呼叫父函式,父函式呼叫的方法,子函式重寫了,那麼最後父函式呼叫的是自己的方法,還是子函式的方法。
Q:子類呼叫父類的方法,父類中某個方法所呼叫的方法,子類也重寫了,那麼最後父類中的方法呼叫的是自己的方法,還是子類的方法。 A:呼叫的是子類的方法。 看程式碼: public class Parent { public void used
關於實現類實現介面之後,eclipse沒有紅線提示實現類去實現介面中的方法的問題
實現類AccessTokenListener實現了介面ServletContextListener,但是eclipse卻沒有紅線提示實現類AccessTokenListener去實現介面的方法。 import javax.servlet.ServletContextListener; publ
python——k-means聚類(餘弦距離,用輪廓係數確定聚類係數K)
用scikit-learn進行k-means聚類,預設使用歐式距離,為了用餘弦距離作為度量,找了一個在生物資訊學裡比較常用的庫:Biopython。Biopython為k-means聚類提供了各種距離函式,包括餘弦距離、皮爾遜相似度量、歐式距離等。 另外,為了確
java類的構造方法可以直接呼叫該類中已有的方法。
例項程式碼如下: 其中構造方法中的呼叫替換掉原註釋的部分。 package test; /** * @author : suyuyuan * @date :2016年6月22日 下午2:46:43 * @version 1.0 */ class People{
jquery獲取元素的值,獲取當前物件的父物件,父元素的子元素
當點選 <a href="#" style="cursor: hand" onclick="more(this);" class="fright mr15">更多</a>時, 在js的函式中想要獲取隱藏域的值 <input type="hidden" value="00070
Java 非同步同時寫多個檔案,寫完之後通知子執行緒
思路: 是主執行緒和多個寫檔案執行緒之間同步,每寫完一個檔案計數加1,如果計數值等於當前寫檔案個數的時候,表示檔案已經全部寫完。此時通過條件變數通知在該條件變數等待的主執行緒。此時主執行緒被喚醒,可以在所有檔案被寫完的條件下做一些動作 程式碼: pack
基本數據類型轉String,String轉基本數據類型
數據類型 static 類型 ble 轉化 tostring 字符串 -- parseint 基本數據類型 --> 字符串 1、基本數據類型+"" String s = 5 + ""; 2、使用包裝類的靜態方法toString(
面試官:談談類載入器吧,你有沒有看過類載入器的原始碼
一、類載入 1.1、在java程式碼中,型別的載入,連線,初始化過程都是在程式執行期間完成的。 圖示: 1.2、型別的載入——這裡的型別是指的什麼? 答:型別就是指的我們Java原始碼通過編譯後的class檔案。 1.3、型別的來源有哪些? (1)本地磁碟 (2)網路下載,class檔案 (3)war,ja
類的學習筆記(5)——靜態方法、類方法、例項方法及屬性方法的區別
python面試題:靜態方法、類方法、例項方法及屬性方法的區別? 1、靜態方法:處理與這個類的邏輯關聯,該方法不可訪問例項屬性或類屬性。可以通過staticmethod裝飾器實現 2、類方法:與本類相關的,方法屬於類的,只能訪問類屬性,可以通過classmethod裝飾器實現。 3
java通過cxf實現webservice服務端,客戶端接收不到響應資訊處理方法
最近在做專案時與客戶進行webservice聯調,響應成功後返回1,服務端正常返回,客戶端表示沒有收到,針對其中的問題分析和處理方法。 1.判斷是否是服務寫的有問題,寫了個測試方式試了下,發現服務端返回沒有問題 String xmlStr = "<?xml vers
python3_scrapy包Field類方法及屬性剖析、字典(dict)類方法及屬性剖析
1.Field類簡介①Field物件指明瞭每個欄位的元資料(任何元資料),Field物件接受的值沒有任何限制②設定Field物件的主要目就是在一個地方定義好所有的元資料③注意,宣告item的Field物件,並沒有被賦值成class屬性。(可通過item.fields進行訪問)
maven自己主動編譯,解決你每次代碼改動須要又一次編譯的繁瑣
mvn clean span ng- ips 每次 servlet trac 問題 文件夾 maven結構的項目,我們在每次改動代碼後都會須要手動編譯,以下命令能夠解決此問題。僅僅要代碼改動。會自己主動幫你編譯。 進入項目文件夾運行:mvn -U eclipse:
C語言基礎下的C++入門---極其絕望的又一次入門,不過這次一定是最後一次入門!!!!!
小程式的入門(一)~~!! #include<iostream> using namespace std;//名稱空間 相當於 #include<iostream.h> -->> C92版本 int addArray(int *addArr
大資料環境下,我們被賣了一次又一次
大資料,人工智慧是當下網際網路最熱門的話題。 拋開大資料的人工智慧都是耍流氓,人工智慧需要大資料作為基礎支援。 大資料是1980年,著名未來學家阿爾文·托夫勒便在《第三次浪潮》一書中,將大資料熱情地讚頌為“第三次浪潮的華彩樂章”。大約從2009年開始,“大資料”成為網際網路資訊科技行
大數據環境下,我們被賣了一次又一次
需要 社會 標簽 行為 移動互 共享 基於 網信 海量 大數據,人工智能是當下互聯網最熱門的話題。 拋開大數據的人工智能都是耍流氓,人工智能需要大數據作為基礎支持。 大數據是1980年,著名未來學家阿爾文·托夫勒便在《第三次浪潮》一書中,將大數據熱
c語言多檔案程式設計,即main檔案呼叫其他.c檔案的方法
c語言多檔案程式設計,即main檔案呼叫其他.c檔案的方法。 兩種方法的區別就是,gcc編譯時,是否加b.c檔案,不加的話,就在a.c檔案裡面,加#include "b.c" 至於extern 那一句,是否新增,編譯都是可以通過的,只是填加上去,大家都知道了,這個函式在其他地方定義了,這個地方只是呼