日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/4/5 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 继承练习题_Java继承 练习题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一題

/*

看程序寫結果:

A:成員變量就近原則

B:this和super的問題

this訪問本類的成員

super訪問父類的成員

C:子類構造方法執行前默認先執行父類的無參構造方法

D:一個類的初始化過程

成員變量進行初始化

默認初始化

顯示初始化

構造方法初始化 ? ??用參數去調用構造函數就是顯式初始化,沒有參數就是默認初始化,表現為直接聲明對象和數組

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

結果:

fu

zi

30

20

10

*/

class Fu{

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

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

/*

看程序寫結果:

A:一個類的靜態代碼塊,構造代碼塊,構造方法的執行流程

靜態代碼塊 > 構造代碼塊 > 構造方法

B:靜態的內容是隨著類的加載而加載

靜態代碼塊的內容會優先執行

C:子類初始化之前先會進行父類的初始化

結果是:

靜態代碼塊Fu

靜態代碼塊Zi

構造代碼塊Fu

構造方法Fu

構造代碼塊Zi

構造方法Zi

*/

class Fu {

static {

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

}

{

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

}

public Fu() {

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

}

}

class Zi extends Fu {

static {

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

}

{

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

}

public Zi() {

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

}

}

class ExtendsTest2 {

public static void main(String[] args) {

Zi z = new Zi();

}

}

問題三

/*

看程序寫結果:

A:成員變量的問題

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

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

B:一個類的初始化過程

成員變量的初始化

默認初始化

顯示初始化

構造方法初始化

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

先進行父類初始化,然后進行子類初始化。

結果:

YXYZ

問題:

雖然子類中構造方法默認有一個super()

初始化的時候,不是按照那個順序進行的。

而是按照分層初始化進行的。

它僅僅表示要先初始化父類數據,再初始化子類數據。

*/

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();

}

}

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。