十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
本文實(shí)例講述了Java中構(gòu)造器內(nèi)部的多態(tài)方法的行為操作。分享給大家供大家參考,具體如下:
這篇文章主要討論的是,若在一個(gè)構(gòu)造器中調(diào)用正在構(gòu)造的對(duì)象的某個(gè)動(dòng)態(tài)綁定的方法時(shí)會(huì)出現(xiàn)的情況。在此之前,我們需要知道構(gòu)造器是如何在復(fù)雜的層次結(jié)構(gòu)中運(yùn)作的,盡管構(gòu)造方法并不具有多態(tài)性,因?yàn)樗鼈儗?shí)際上是static方法,只不過(guò)是隱式聲明的static。
復(fù)雜層次結(jié)構(gòu)中構(gòu)造器的調(diào)用順序
基類(lèi)的構(gòu)造器總是在導(dǎo)出類(lèi)的構(gòu)造過(guò)程中被調(diào)用,而且按照繼承層次逐漸向上鏈接,以使每個(gè)基類(lèi)的構(gòu)造器都能得到調(diào)用。這樣做是因?yàn)?,在Java類(lèi)中,我們通常將字段設(shè)置為private類(lèi)型,也就是說(shuō),在子類(lèi)中通常無(wú)法直接訪問(wèn)基類(lèi)的字段,那么只有通過(guò)調(diào)用基類(lèi)的構(gòu)造器才能對(duì)基類(lèi)對(duì)象的元素進(jìn)行初始化,那么就必須保證所有的構(gòu)造器都得到調(diào)用,這樣才能正確地構(gòu)造完整的對(duì)象。下面的例1展示了包含有組合與繼承關(guān)系的各類(lèi)中構(gòu)造器的調(diào)用順序:
例1:
class Meal { Meal() { System.out.println("Meal()"); } } class Bread { Bread() { System.out.println("Bread()"); } } class Cheese { Cheese() { System.out.println("Cheese()"); } } class Lettuce { Lettuce() { System.out.println("Lettuce()"); } } class Lunch extends Meal { Lunch() { System.out.println("Lunch()"); } } class PortableLunch extends Lunch { PortableLunch() { System.out.println("PortableLunch()");} } public class Sandwich extends PortableLunch { private Bread b = new Bread(); private Cheese c = new Cheese(); private Lettuce l = new Lettuce(); public Sandwich() { System.out.println("Sandwich()"); } public static void main(String[] args) { new Sandwich(); } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。