Java繼承和多型===Java繼承的概念與實現
阿新 • • 發佈:2019-02-08
繼承是類與類之間的關係,是一個很簡單很直觀的概念,與現實世界中的繼承(例如兒子繼承父親財產)類似。
繼承可以理解為一個類從另一個類獲取方法和屬性的過程。如果類B繼承於類A,那麼B就擁有A的方法和屬性。
繼承使用 extends 關鍵字。
例如我們已經定義了一個類 People:
完全沒必要,可以先繼承 People 類的成員,再增加自己的成員即可,例如:
繼承是在維護和可靠性方面的一個偉大進步。如果在 People 類中進行修改,那麼 Teacher 類就會自動修改,而不需要程式設計師做任何工作,除了對它進行編譯。
單繼承性:Java 允許一個類僅能繼承一個其它類,即一個類只能有一個父類,這個限制被稱做單繼承性。後面將會學到介面(interface)的概念,介面允許多繼承。
最後對上面的程式碼進行整理:
我叫小布,在清華大學教Java,有12年教齡
我已經70歲了,依然站在講臺上講課
繼承可以理解為一個類從另一個類獲取方法和屬性的過程。如果類B繼承於類A,那麼B就擁有A的方法和屬性。
繼承使用 extends 關鍵字。
例如我們已經定義了一個類 People:
- classPeople{
- Stringname;
- int age;
- int height;
- void say(){
- System.out.println("我的名字是 " + name + ",年齡是 " + age + ",身高是 " + height);
- }
- }
完全沒必要,可以先繼承 People 類的成員,再增加自己的成員即可,例如:
- classTeacher extends People{
- Stringschool; // 所在學校
- Stringsubject; // 學科
- int seniority; // 教齡
- // 覆蓋 People 類中的 say() 方法
- void say(){
- System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教齡");
- }
- void lecturing
- System.out.println("我已經" + age + "歲了,依然站在講臺上講課");
- }
- }
- name 和 age 變數雖然沒有在 Teacher 中定義,但是已在 People 中定義,可以直接拿來用。
- Teacher 是 People 的子類,People 是Teacher 類的父類。
- 子類可以覆蓋父類的方法。
- 子類可以繼承父類除private以為的所有的成員。
- 構造方法不能被繼承。
繼承是在維護和可靠性方面的一個偉大進步。如果在 People 類中進行修改,那麼 Teacher 類就會自動修改,而不需要程式設計師做任何工作,除了對它進行編譯。
單繼承性:Java 允許一個類僅能繼承一個其它類,即一個類只能有一個父類,這個限制被稱做單繼承性。後面將會學到介面(interface)的概念,介面允許多繼承。
最後對上面的程式碼進行整理:
- public classDemo {
- public static void main(String[] args) {
- Teachert = new Teacher();
- t.name = "小布";
- t.age = 70;
- t.school = "清華大學";
- t.subject = "Java";
- t.seniority = 12;
- t.say();
- t.lecturing();
- }
- }
- classPeople{
- Stringname;
- int age;
- int height;
- void say(){
- System.out.println("我的名字是 " + name + ",年齡是 " + age + ",身高是 " + height);
- }
- }
- classTeacher extends People{
- Stringschool; // 所在學校
- Stringsubject; // 學科
- int seniority; // 教齡
- // 覆蓋 People 類中的 say() 方法
- void say(){
- System.out.println("我叫" + name + ",在" + school + "教" + subject + ",有" + seniority + "年教齡");
- }
- void lecturing(){
- System.out.println("我已經" + age + "歲了,依然站在講臺上講課");
- }
- }
我叫小布,在清華大學教Java,有12年教齡
我已經70歲了,依然站在講臺上講課