java中子類與父類中隱含的this引用的分析

/*看一下下面的程序,看是否你的答案和運行的答案是否一致!
*/
class Parent{public int x;public Parent p;public Parent(){}public Parent(int x){this.x=x; p=this;}public void f(){System.out.println("Parent::f()"); }public void g(){System.out.println("Parent::g()");}public void h(){System.out.println("Parent::h()");f();g();y();System.out.println("LOOK HERE: " + x);}private void y(){System.out.println("Parent::y()");}
};class Child extends Parent{public int x;public Child(){}public Child(int x){ super(x+5);this.x=x;}public void f(){System.out.println("Child f()");}public void g(){System.out.println("Child g()"); }
};public class ThisDemo {public static void main(String[] args) {Child ch=new Child();ch.h();System.out.println();ch=new Child(5);ch.h();System.out.println();ch.p.h();}}其實c++this思想和java中的this思想差不多,就是在多態的情況下有一些不同,c++基類中的方法如果沒有有virtual修飾,那么派生類的重寫該方法時就不是覆蓋,不會具有包含多態(c++多態的種類:強制多態、重載多態、類型參數化多態、包含多態(就是通過用virtual))!然而在java中,如果子類中重寫了父類的方法,那么就是覆蓋,就會產生像c++使用virtual的多態!c++樣例請點擊這里:here!
輸出結果:
/*
Parent::h()
Child f()
Child g()
Parent::y()
LOOK HERE: 0Parent::h()
Child f()
Child g()
Parent::y()
LOOK HERE: 10//輸出的是父類中的xParent::h()
Child f()
Child g()
Parent::y()
LOOK HERE: 10//輸出的是父類中的x
*/

?

轉載于:https://www.cnblogs.com/hujunzheng/p/3963487.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531678.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531678.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531678.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php注冊機制,php自動注冊登錄驗證機制實現代碼_PHP教程

背景:在phpwind站點后臺添加一個名為“廣告管家”(廣告管家為CNZZ的一款廣告投放的應用)的應用,整個“廣告管家”的應用是通過iframe載入,載入的具體內容根據不同站點顯示針對該站點的具體內容,為了提高易用性,有以下的…

codeforce No to Palindromes!(枚舉)

1 /*2 題意:給定一個字符串中沒有任何長度>1的回文子串!求按照字典序的該串的下一個字符串3 也不包含長度>1的任何回文子串!4 5 思路:從最低位進行枚舉,保證第i位 不與 第 i-1位和第 i-2位相…

php js 比較,PHP與JS的比較

1樓一直以來,php和js一樣,都被視做腳本語言。的確,他們兩者蠻像的。首先他們都是弱類型語言,定義變量的時候不需要指定某個具體類型,變量類型可以實現隱式轉換。雖然很多人說這樣會帶來很多一些潛在的問題,…

codeforces Restore Cube(暴力枚舉)

1 /*2 題意:給出立方體的每個頂點的坐標(是由源坐標三個數某幾個數被交換之后得到的!), 3 問是否可以還原出一個立方體的坐標,注意這一句話:4 The numbers in the i-th output line…

php 非遞歸調用,php 無限分類(非遞歸)

/*** 無限分類* 2011/8/24* kcj* */include "../conn/conn.php";$flpid$_POST[flpid];$fltitle$_POST[title];$fldes$_POST[des];if(isset($_POST[action])!&&$_POST[action]"add"){ // 無限分類(非遞歸),用路徑來判斷分類歸屬(flidflp…

樹狀數組三種模型

樹狀數組在區間求和問題上有大用,其三種復雜度都比線段樹要低很多……有關區間求和的問題主要有以下三個模型(以下設A[1..N]為一個長為N的序列,初始值為全0):(1)“改點求段”型,即對…

php實現直播答題系統,直播答題解決方案

概述即構提供直播答題一站式解決方案,包括 Windows 主播端、移動 APP 端示例源代碼(iOS、Android)。1 下載/體驗地址由于直播答題場景需要主播端(推流、發題)和觀眾端(拉流、答題)配合使用,因此開發者需要同時下載這兩端的軟件。下載后,具體的…

poj 3486 A Simple Problem with Integers(樹狀數組第三種模板改段求段)

1 /*2 樹狀數組第三種模板&#xff08;改段求段&#xff09;不解釋&#xff01; 不明白的點這里&#xff1a;here&#xff01;3 */4 #include<iostream>5 #include<cstring>6 #include<cstdio>7 #include<algorithm>8 #define N 1000059 us…

php路由類默認模塊,微擎入口路由及其模塊入口路由 - YangJunwei

一、微擎入口路由微擎有2個入口文件/web/index.php?csite&aentry/app/index.php?centry路由變量$controller $_GPC[c]; //web入口缺省值account&#xff0c;app入口home$action $_GPC[a]; //index.php入口文件開頭$acl變量可配置默認方法$do $_GPC[do];不管$action是什…

matlab subs 慢,求助matlab程序計算速度過慢的原因

程序代碼如下function [length]contactlength(x0)if x0>50||x0error:數據超出尺寸范圍elsesyms xR300;%非球面頂點曲率半徑c1/R;delta0.1;k-3.3;%非球面參數rb27;%半徑y(-1*c*x.^2)./(1sqrt(1-(1k)*(c^2)*x.^2));dydiff(y);dy2diff(y,2);dyx0subs(dy,x0);dy2x0subs(dy2,x0);…

matlab r2010a教程,MATLAB教程R2010a(十二五)

第1章 基礎準備及入門1.1 MATLAB的安裝和工具包選擇1.2 Desktop操作桌面的啟動1.2.1 MATLAB的啟動1.2.2 Desktop操作桌面簡介1.3 Command Window運行入門1.3.1 Commancl Winelow指令窗簡介1.3.2 最簡單的計算器使用法1.3.3 數值、變量和表達式1.4 Command Window操作要旨1.4.1 …

java中解決組件重疊的問題(例如鼠標移動組件時)

java中解決組件覆蓋的問題&#xff01; 有時候在移動組件的時候會出現兩個組件覆蓋的情況&#xff0c;但是你想讓被覆蓋的組件顯示出來或者不被覆蓋&#xff01;在設計GUI時已經可以定義組件的疊放次序了&#xff08;按擺放組件的先后順序&#xff09;。 真正麻煩的是響應哪…

matlab橋梁受力計算公式,matlab橋梁計算

等級&#xff1a;文件 218KB格式 pdf內容簡介 該文結合斜拉橋施工監控的工程實踐&#xff0c;分析研究利用MATLAB 6&#xff0e;0神經網絡算法&#xff0c;可實現模式識別和函數逼近&#xff0c;進行信號處理&#xff0c;利用人工智能進行自動控制及非線性預測等。斜拉橋智能施…

php自然排序法的比較過程,PHP中strnatcmp()函數“自然排序算法”進行字符串比較用法分析(對比strcmp函數)...

本文實例講述了PHP中strnatcmp()函數“自然排序算法”進行字符串比較用法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;PHP中strnatcmp()函數使用"自然"算法來比較兩個字符串(區分大小寫)&#xff0c;通常在自然算法中&#xff0c;數字 2 小于數字 10。而…

2014 網選 5014 Number Sequence(異或)

1 /*2 題意&#xff1a;a, b兩個序列&#xff0c;規定由[0, n]區間的數&#xff01;3 求 a[i] ^ b[i] 的和最大&#xff01; 4 5 思路&#xff1a;如果數字 n的二進制有x位&#xff0c; 那么一定存在一個數字m&#xff0c;使得n^m的所有二進制位6 都是1&am…

2014 網選 5007 Post Robot(暴力或者AC_自動機(有點小題大作了))

//暴力&#xff0c;從每一行的開始處開始尋找要查詢的字符 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std;char str[100005];int main(){while(gets(str)){for(int i0; str[i]; i)if(str[i]A){if(s…

java 如何放大動畫圖,Android仿微信圖片放大動畫

&#xff03;今年三月份直接上手做的android&#xff0c;代碼寫的不規范&#xff0c;有問題希望指出&#xff0c;謝謝(app數英)類似于微信 圖片瀏覽的效果&#xff0c;我的做法是在兩個activity A\B之間傳遞圖片的位置信息思路&#xff1a;在activity A的list view上有一張圖片…

2014 網選 5012 Dice(bfs模板)

1 /*2 題意&#xff1a;就是給定兩個篩子&#xff0c;每個篩子上6個面&#xff0c;每個面的數字屬于[1,6]&#xff0c; 且互不相同&#xff01;3 問a篩子最少經過按照題目規定的要求轉動&#xff0c;達到和b篩子上下左右前后的數字相同&#xff01;4 5 思路&am…

matlab 神經網絡dpi,基于DPI和BP神經網絡的P2P流量識別研究

研究與開發 現代計算機 2019.04 上 文章編號&#xff1a;1007-1423(2019)10-0031-05 DOI&#xff1a;10.3969/j.issn.1007-1423.2019.10.007 基于 DPI 和 BP 神經網絡的 P2P 流量識別研究 萬建偉&#xff0c;胡勇 (四川大學電子信息學院&#xff0c;成都 610021) 摘要&#xff…

2014 網選 5011 Game(Nim游戲,數學題)

/*題意&#xff1a;Nim游戲&#xff01; 思路&#xff1a;通過異或&#xff0c;判斷將n個數表示成二進制的形式之后&#xff0c;是否對應位的數字1 的個數是偶數&#xff01; */ #include<iostream> using namespace std;int main(){int n, x, s;while(cin>>n){s…