日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java 继承练习题_Java继承 练习题

發(fā)布時(shí)間:2025/4/5 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 继承练习题_Java继承 练习题 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一題

/*

看程序?qū)懡Y(jié)果:

A:成員變量就近原則

B:this和super的問題

this訪問本類的成員

super訪問父類的成員

C:子類構(gòu)造方法執(zhí)行前默認(rèn)先執(zhí)行父類的無參構(gòu)造方法

D:一個(gè)類的初始化過程

成員變量進(jìn)行初始化

默認(rèn)初始化

顯示初始化

構(gòu)造方法初始化 ? ??用參數(shù)去調(diào)用構(gòu)造函數(shù)就是顯式初始化,沒有參數(shù)就是默認(rèn)初始化,表現(xiàn)為直接聲明對(duì)象和數(shù)組

所以執(zhí)行父類無參構(gòu)造方法前會(huì)先執(zhí)行成員變量的初始化,public int num = 10;,再執(zhí)行無參構(gòu)造方法,同理,執(zhí)行完父類無參構(gòu)造方法,再執(zhí)行子類成員變量的初始化,public int num = 20;最后執(zhí)行子類構(gòu)造方法。

結(jié)果:

fu

zi

30

20

10

*/

class Fu{

public int num = 10;//public int num;這是第一步,不賦值,默認(rèn)為0,稱為默認(rèn)初始化;第二步,把10賦予給num,這一步稱為顯式初始化,每個(gè)成員變量賦值都會(huì)在jvm的堆內(nèi)存執(zhí)行 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //這樣的兩個(gè)步驟。

public Fu(){

System.out.println("fu");

}

}

class Zi extends Fu{

public int num = 20;

public Zi(){

System.out.println("zi");

}

public void show(){

int num = 30;

System.out.println(num); //30

System.out.println(this.num); //20

System.out.println(super.num); //10

}

}

class ExtendsTest {

public static void main(String[] args) {

Zi z = new Zi();

z.show();

}

}

題目2

/*

看程序?qū)懡Y(jié)果:

A:一個(gè)類的靜態(tài)代碼塊,構(gòu)造代碼塊,構(gòu)造方法的執(zhí)行流程

靜態(tài)代碼塊 > 構(gòu)造代碼塊 > 構(gòu)造方法

B:靜態(tài)的內(nèi)容是隨著類的加載而加載

靜態(tài)代碼塊的內(nèi)容會(huì)優(yōu)先執(zhí)行

C:子類初始化之前先會(huì)進(jìn)行父類的初始化

結(jié)果是:

靜態(tài)代碼塊Fu

靜態(tài)代碼塊Zi

構(gòu)造代碼塊Fu

構(gòu)造方法Fu

構(gòu)造代碼塊Zi

構(gòu)造方法Zi

*/

class Fu {

static {

System.out.println("靜態(tài)代碼塊Fu");

}

{

System.out.println("構(gòu)造代碼塊Fu");

}

public Fu() {

System.out.println("構(gòu)造方法Fu");

}

}

class Zi extends Fu {

static {

System.out.println("靜態(tài)代碼塊Zi");

}

{

System.out.println("構(gòu)造代碼塊Zi");

}

public Zi() {

System.out.println("構(gòu)造方法Zi");

}

}

class ExtendsTest2 {

public static void main(String[] args) {

Zi z = new Zi();

}

}

問題三

/*

看程序?qū)懡Y(jié)果:

A:成員變量的問題

int x = 10; //成員變量是基本類型

Student s = new Student(); //成員變量是引用類型

B:一個(gè)類的初始化過程

成員變量的初始化

默認(rèn)初始化

顯示初始化

構(gòu)造方法初始化

C:子父類的初始化(分層初始化)

先進(jìn)行父類初始化,然后進(jìn)行子類初始化。

結(jié)果:

YXYZ

問題:

雖然子類中構(gòu)造方法默認(rèn)有一個(gè)super()

初始化的時(shí)候,不是按照那個(gè)順序進(jìn)行的。

而是按照分層初始化進(jìn)行的。

它僅僅表示要先初始化父類數(shù)據(jù),再初始化子類數(shù)據(jù)。

*/

class X {

Y b = new Y();

X() {

System.out.print("X");

}

}

class Y {

Y() {

System.out.print("Y");

}

}

public class Z extends X {

Y y = new Y();

Z() {

//super();

System.out.print("Z");

}

public static void main(String[] args) {

new Z();

}

}

總結(jié)

以上是生活随笔為你收集整理的java 继承练习题_Java继承 练习题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。