java什么叫子類? 在java 中,什么叫父類,什么叫子類
父子類:存在繼承關(guān)系,關(guān)鍵字extends,例如你說的:class Son extends Father{String name;} 兒子是父親的一個子類,是兩個獨立的類,只是子類繼承父類的成員變量和成員方法
內(nèi)部類:與繼承無關(guān),是定義在一個類內(nèi)部的類,可以看成是類的一部分,分為:
例如:class Father{class FatherClothes extends Clothes{} } 這個表示 “ 父親的衣服FatherClother” 定義在父親類里面(沒有繼承關(guān)系),并繼承衣服類Clother(有繼承關(guān)系)
此時“父親的衣服類”可以看成是父親類的一個一個成員變量,但他們沒有繼承關(guān)系,可以寫成:Father.FatherCloter ,而那個“.”,表示成員運算符表示FatherClother是Father的一個成員,就像上面Son類中的 Son.name一樣,但是我們不能寫成Father.Son。
所以樓主說的 “class a1 extends a2{}那么a1是a2的子類嗎?”是對的。
“我們寫B(tài)1.B2.C3(中間是點號)的時候,就表示c3是b2的子類,b2是b1的子類?”不是子類,是內(nèi)部類
“那class a1{class a2{}}這樣a2也是a1的子類嗎?也可以寫成a1.a2?”不是子類,是內(nèi)部類
內(nèi)部類在解決這樣的問題的時候,很有用(當然只是一個方面,還有別的用處):
一個接口A中有p()方法,一個類B中也有p()方法,那么我想讓這個接口被B實現(xiàn),然后調(diào)用p()方法(B類中的p()方法,我不想覆蓋),但是我們調(diào)用的哪個?
此時我們可以在B的內(nèi)部聲明一個內(nèi)部類C,讓C去實現(xiàn)A接口,然后調(diào)用B中原有的p()方法,可以用B的對象 b.p(),調(diào)用接口中被實現(xiàn)的p()方法,可以b..c.p()(c是類C的一個實例)
繼承,太熟悉了,熟悉到都不知道說什么了,只能想到這么一句:繼承意味著基于一個已經(jīng)定義好的類創(chuàng)建一個新的類,新的類將以某種方式擴展原有的類,可以認為就是一個類得到另一個類所有屬性的過程(構(gòu)造函數(shù)木有被繼承,但子類可以通過super調(diào)用)。
后面還有匿名內(nèi)部類,有興趣可以百度一下了解了解。
B1.B2.B3是嵌套類
Java里extends才是子類。
蛋,是雞的子類,但如果還在雞肚子里,不算。
class a1 extends a2{} ,有雞a2,生一蛋a1,a1為雞之子。
class a1{class a2{}},有雞a1,懷蛋a2,不一定能生呢,是內(nèi)部蛋,尚不算子。
B1.B2.C3,有雞B1,懷蛋B2,蛋B2又懷蛋C3。
簡單說,可能不嚴謹,extends就是生蛋的意思。
class a1 extends a2{}的話a1是a2的子類,
而class a1{class a2{}}的話,a2是a1的內(nèi)部類,內(nèi)部類和子類是兩個概念
class a1 extends a2{}那么a1就是a2的子類
B1.B2.C3(中間是點號)的時候,就表示C3是B2的方法那class a1{class a2{}}這是a2是a1的內(nèi)部類
ava中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字修飾同步方法? stop...
在Java 5之前,實現(xiàn)線程的方式主要有兩種。第一種是通過創(chuàng)建Thread子類,并重寫run方法,然后調(diào)用start()方法啟動線程。例如:new Thread() { public void run() { } }.start();第二種方式是通過創(chuàng)建實現(xiàn)了Runnable接口的匿名內(nèi)部類,然后將其實例傳遞給Thread構(gòu)造函數(shù)。例如:new Thread(new Runnable...
ava中有幾種方法可以實現(xiàn)一個線程
在java5以前實現(xiàn)多線程有兩種方法(繼承Thread類和實現(xiàn)Runnable接口) 它們分別為: 使用new Thread()和new Thread(Runnable)形式 第一種直接調(diào)用thread的run方法,所以,往往使用Thread子類,即new SubThread()。導體的電阻成反比。公式:(I=U\/R)式 中單位:I→安(A)
ava中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字修飾同步方法? stop...
是Java 不是ava。線程的實現(xiàn)方法就是兩種了,一種是繼承Thread類一種是實現(xiàn)Runnable接口同步方法當然是用同步Synchronized修飾了stop和suspend太粗暴了,不問青紅皂白就把線程干掉了,很不講理很不安全的,當然不推薦使用 本回答被網(wǎng)友采納 已贊過 已踩過< 你對這個回答的評價是? 評論 收起 ...
JAVA是什么意思?
2.OOP中最重要的思想是類,類是模板是藍圖,從類中構(gòu)造一個對象,即創(chuàng)建了這個類的一個實例(instance)。 3.封裝:就是把數(shù)據(jù)和行為結(jié)合起在一個包中)并對對象使用者隱藏數(shù)據(jù)的實現(xiàn)過程,一個對象中的數(shù)據(jù)叫他的實例字段(instance field)。 4.通過擴展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由...
java的常用接口有哪些?
5.ava.util.HashMap 一個實現(xiàn)鍵值對數(shù)據(jù)結(jié)構(gòu)的類,這個類實現(xiàn)了Map接口,類似比較ArrayList與Vector,Hash Map與Hashtable也是經(jīng)常拿來比較的。它也是一個受歡迎的集合類,作為一個屬性-值的容器,經(jīng)常用在應(yīng)用程序多個層之間的數(shù)據(jù)傳遞。6.java.lang.Object 所有Java類的根類,每一個Java類都是Object...
JVM原理是什么?
下面將先介紹類裝載器,然后是執(zhí)行引擎,最后是運行時數(shù)據(jù)區(qū)1、類裝載器,顧名思義,就是用來裝載.class文件的。JVM的兩種類裝載器包括:啟動類裝載器和用戶自定義類裝載器,啟動類裝載器是JVM實現(xiàn)的一部分,用戶自定義類裝載器則是Java程序的一部分,必須是ClassLoader類的子類。(下面所述情況是針對SunJDK1.2)動類裝載...
什么是Java?
類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。Java還包括一個類的擴展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類(java.awt包),這里awt是...
java中的super()是什么
所以,如果super是個變量,也指向當前對象,那么,不管super的靜態(tài)類型是什么super.method()必然調(diào)用的是子類的那個版本,而不會是我們期望的,靜態(tài)地選擇父類的那個版本。所以,你只要把super.xxx看成一個特殊的語法,比如理解為“super::xxx”就好了。既然super不是一個變量,那么不能把它象一個普通...
學習JAVA最重要的是什么?
Javase Java基礎(chǔ)所包含的,Java零基礎(chǔ)必備安裝包、JavaSE301集、Java教程零基礎(chǔ)2019、Java教程零基礎(chǔ)2019(ava基礎(chǔ)語法、面向?qū)ο蟆惓!?shù)組、常用類、集合、IO流、線程、反射機等等)、XML、Tomcat服務(wù)器開發(fā);其中Java零基礎(chǔ)2019這視頻教程系列可以去B站觀看。搜索Java或者Java教程,第一個就是,杜老師...
AVA戰(zhàn)地之王的偵察兵的戰(zhàn)斗技巧有哪些
本人玩AVA一般都是打狙擊,偵查玩過一段時間,感受最多的就是移動速度快,跑位靈活。這個也是偵察兵的最大特點,也是一大利器。不過尚且有利弊之分。優(yōu)點:1、移動速度快,沖鋒絕對第一個。匹配槍支一般都是威力低,中近距離,射速快,機動性強,子彈多。(單噴除外)2、因為速度快,對于地圖的搶占...
相關(guān)評說:
新樂市巷道: ______ 繼承是面向?qū)ο蟮娜筇卣髦?直接說定義不好理解,我打個比方吧,現(xiàn)在需要男人,女人,老人,小孩4個類,每個類都有很多屬性,而且有一部分相同的屬性,例如每個人都有身高,體重等等,我們就可以提取這些相同的部分,建立一個新的類:人類,然后把公共的屬性寫在人類里,用其他4個來繼承人類,其他4個類就不需要寫這些屬性,而是可以直接調(diào)用這些屬性. 我這個例子,人類就是父類,其他4個類繼承人類,所以是人類的子類!
新樂市巷道: ______ 父類是相對于子類來說的,就像父親是相對于兒子來說一樣.父類對象并不是父類本身,而是父類實例化之后的產(chǎn)物,是具體的.要注意分清類和對象的關(guān)系
新樂市巷道: ______ 對,沒重寫那super.add() 和this.add() 都是調(diào)的父類的方法, 沒什么區(qū)別,如果重寫了this.add()就默認調(diào)本類的方法,super就默認調(diào)父類的方法, 再在子類中,都不寫的話,如果有重寫父類的add()方法的話就默認調(diào)本類的add()...
新樂市巷道: ______ 類是面向?qū)ο缶幊讨械淖罨疽彩亲钪匾囊环N結(jié)構(gòu)類型,它是許多具有共同特征的個體的集合.這些個體擁有共同的方法、共同的數(shù)據(jù)結(jié)構(gòu),同時個體間又存在各種差異.這些個體叫做類的實例.基于這個特征,類具有繼承和多態(tài)等特性,即子類可以繼承父類、類和類之間可以有覆蓋的方法.如果具化到實際生活中,例如所有的電話的集合就可以抽象為一個類,它有座機電話、移動電話、智能手機等子類,這些子類具有共同的繼承自父類的方法:撥號,同時又有自己的方法,如智能手機可以上網(wǎng).這些子類的某個個體,如某一臺XX牌的智能手機,稱為一個實例.
新樂市巷道: ______ 你好,給你舉個簡單的例子吧.類A,另外一個類B繼承了類A.有如下代碼: A a = new B() ; 這就稱父類的引用a 指向了子類的對象new B(),就是這個意思.
新樂市巷道: ______ 根類不是子類,根類是所有類的父類,classObject就是根類
新樂市巷道: ______ 1. 繼承,是對有著共同特性的多類事物,進行再抽象成一個類.這個類就是多類事物的父類.父類的意義在于可以抽取多類事物的共性.子類中有和父類中可訪問(可繼承到子類)的同名同返回類型同參數(shù)表的方法,就會覆蓋從父類繼承來的方...
新樂市巷道: ______ Java是Sun公司推出的一種編程語言.它是一種通過解釋方式來執(zhí)行的語言,語法規(guī)則和C++類似.同時,Java也是一種跨平臺的程序設(shè)計語言.用Java語言編寫的程序叫做“Applet”(小應(yīng)用程序),用編譯器將它編譯成類文件后,將它存在...
新樂市巷道: ______ Object是任何對象的父類,Array是final的,所以數(shù)組肯定不是它的子類,Collection 是一個集合接口,它提供了對集合對象進行基本操作,所以數(shù)組的父類如果沒有明確的extends的話,應(yīng)該指的就是超父類Object.
新樂市巷道: ______ 類 是Java語 言 面 向 對 象 編 程 的 基 本 元 素, 它 定 義 了 一 個對 象 的 結(jié) 構(gòu) 和 行 為. 在Java程 序 里, 你 要 表 達 的 概 念 封 裝 在某 個 類 里. 一 個 類 定 義 了 一 個 對 象 的 結(jié) 構(gòu) 和 它 的 功 能 接口, 功 能 接 口 稱 為 成 員 函 數(shù). 當...