一、方法重寫的概述:
子類**現了和父類中方法宣告一模一樣的方法宣告,也被稱為方法覆蓋、方法複寫。
使用特點:
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 先舉一繼承的個例子 單繼承 ...