Java中繼承的定義與使用(下篇)

2021-09-25 04:28:31 字數 2798 閱讀 8033

一、方法重寫的概述:

子類**現了和父類中方法宣告一模一樣的方法宣告,也被稱為方法覆蓋、方法複寫。

使用特點:

1.如果方法名不同,就呼叫對應的方法。

2.如果方法名相同,最終使用的是子類自己的。

二、方法重寫的應用:

當子類需要父類的功能,而功能主體子類有自己的特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。

注意事項:

1.父類中私有方法不能被重寫;

2.子類重寫父類方法時,訪問許可權不能更低;

3.父類靜態方法,子類也必須通過靜態方法進行重寫;

//方法重寫

package test4;

class phone*/

public void call(string name)

}class newphone extends phone*/

public void call(string name)

}public class example3_1

}

三、super與this關鍵字的使用

概述:super的用法和this很像,this代表本類對應的引用,super代表父類儲存空間的標識(可以理解為父類引用)。

那麼怎麼使用呢?

1.呼叫成員變數:

this.成員變數    呼叫本類的成員變數

super.成員變數         呼叫父類的成員變數

2.呼叫構造方法

this(...)        呼叫本類的構造方法

super(...)        呼叫父類的構造方法

3.呼叫成員方法

this.成員方法    呼叫本類的成員方法

super.成員方法    呼叫父類的成員方法

繼承中所有的構造方法預設都會訪問父類中空引數的構造方法,為什麼呢?

因為子類會繼承父類中的資料,可能還會使用父類的資料,所以子類初始化之前,一定要完成父類資料的初始化;

子類每乙個構造方法的第一條語句預設都是super(),如果父類沒有無參構造方法,那麼,子類構造方法就會報錯,如何解決呢?

1.在父類中加乙個無參構造方法;

2.子類通過super去顯示呼叫父類的其他構造方法;

3.子類通過this去呼叫本類的其他構造方法(本類其他構造方法必須首先訪問了父類構造方法)

注意:super(...)或this(..)必須出現在第一條語句,否則就會有父類資料的多次初始化。

小總結:

1.成員變數的問題:

int x = 10;//成員變數為基本型別;

student s = new student();//成員變數是引用型別

2.乙個類的初始化過程:

預設初始化

顯示初始化

構造方法初始化

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

先進行父類初始化,然後進行子類初始化;

4.繼承中成員方法的關係:

(1):首先在子類找

(2):然後在父類中找

(3):如果還沒有就報錯(不考慮父親的父親)    

//super與this的使用案例

class father2

public father2(int m)

}class son2 extends father2

public son2(int m)

}public class example2_6

}

四、final關鍵字的使用

final可以用來修飾類、方法、變數。

特點:1.final修飾類,該類不能被繼承;

2.final修飾方法,該方法不能被重寫;

3.final可以修飾變數,該變數不能被重新賦值;(變數為常量)

常量分為:

1.字面值常量:「hello」,10,true;

2.自定義常量:final int x = 10;

面試題:final修飾區域性變數的問題?

1.基本型別:基本型別的值不發生改變;

2.引用型別:引用型別的位址值不能改變,但是,該物件的堆記憶體的值可以改變;

//final關鍵字的使用

package test4;

//修飾類時

/*final class fu*/

class father*/

public void show()

}class son extends father

}public class example3_4

}

最後,使用繼承後的學生和老師案例,**如下:

//使用繼承後的學生和老師案例

package test4;

class people

public people (string name,int age)

public void setname(string name)

public string getname()

public void setage(int age)

public int getage()

}class student extends people

public student(string name,int age)

}class teacher extends people

public teacher(string name,int age)

}public class example3_2

}

Java中繼承的概念

繼承的概念 繼承指的是乙個類從另乙個類從獲得屬性和方法的過程,它們的關係可以看做是父子的關係,乙個父類,乙個子類。繼承只能是單繼承的,就如乙個父親可以有多個孩子,但是乙個孩子不能有多個父親的道理一樣。繼承使用extends關鍵字。我們首先建立乙個people類 public class people...

C 中繼承的學習與使用

我們用動物類作為基類 也叫作父類 狗類和貓類作為派生類,也叫子類 class animal 基類 父類 public void speak class dog animal 派生類 子類 class cat animal 在main 中呼叫 dog dog new dog dog.lookhouse...

c 中繼承的使用

概念 繼承機制是物件導向程式設計使 可以復用的最重要的手段,它允許程式設計師在保持原有類特性的基礎上進行擴充套件,增加功能。這樣產生新的類,稱派生類。繼承呈現了物件導向程式設計的層次結構,體現由簡單到複雜的認知過程。繼承定義格式如下圖 1.繼承關係和訪問限定符如下圖 1 先舉一繼承的個例子 單繼承 ...