手把手Java入門:繼承(面向對象篇)

2021-02-20 優才網

本篇轉自CSDN博客博主的JAVA入門基礎,讀者可以點擊原文連結進入博客,閱讀作者關於JAVA基礎的其他文章,希望對您有幫助。


繼承的概念

繼承是java面向對象編程中的基石,它允許創建分層次的類。繼承是子類繼承父類的特徵和行為,使得子類對象具有父類的實例域和方法,或者子類直接繼承父類的方法,使得子類具有父類相同的行為。

生活中的繼承

老鼠和貓都是動物類,老鼠和貓就是動物類的子類,而動物類就是父類,繼承的符合關係是:is-a.

在java中實現繼承的關鍵字是extends,它可以聲明一個類是從另外一個類繼承而來的。格式如下:

class父類{}

class子類extends父類{}

繼承的特性

子類擁有父類非private的屬性和方法。

子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。

子類可以用自己的方式實現父類的方法。

Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關係就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。

子類不能繼承父類的構造器(構造方法或者構造函數),但是父類的構造器帶有參數的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器並配以適當的參數列表。

如果父類有無參構造器,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統會自動調用父類的無參構造器。

繼承的好處

在不同的類中也可能會有共同的特徵和動作,可以把這些共同的特徵和動作放在一個類中,讓其它類共享。因此可以定義一個通用類,然後將其擴展為其它多個特定類,這些特定類繼承通用類中的特徵和動作。

繼承是Java中實現軟體重用的重要手段,避免重複,易於維護,易於理解。

繼承中所涉及到的關鍵字:super和this

super關鍵字

super表示使用它的類的父類。super可用於:調用父類的構造方法;調用父類的方法(子類覆蓋了父類的方法時);訪問父類的數據域。

super語句必須是子類構造方法的第一條語句。不能在子類中使用父類構造方法名來調用父類構造方法。

父類的構造方法不被子類繼承。調用父類的構造方法的唯一途徑是使用super關鍵字,如果子類中沒顯式調用,則編譯器自動將super(); 作為子類構造方法的第一條語句。這會形成一個構造方法鏈。

靜態方法中不能使用super關鍵字。

調用父類的方法語法:super.方法名(參數列表);

this關鍵字

this關鍵字表示當前對象。可用於:

調用當前類的構造方法,並且必須是方法的第一條語句。

如:this(); 調用默認構造方法。this(參數); 調用帶參構造方法。

限定當前對象的數據域變量。一般用於方法內的局部變量與對象的數據域變量同名的情況。如this.num=num。this.num表示當前對象的數據域變量num,而num表示方法中的局部變量。

繼承的小實例:

 

文章來源:

http://blog.csdn.net/zyf__java/article/details/71101755?utm_source=tuicool&utm_medium=referral

相關焦點

  • Java面向對象程序設計的基本概念
    面向對象的程序設計涉及到對象、封裝、類、繼承及多態等幾個基本概念。
  • Java面向對象之枚舉——enum
    Java面向對象之枚舉——enum引出枚舉首先來考慮這樣一個需求:判斷一個員工(Employee)在一周的哪一天休息。java.lang.Enum類的,Enum類是所有枚舉的父類。一樣,枚舉都不會顯式地繼承Enum。
  • Java面向對象中的封裝和訪問控制符詳解
    封裝面向對象編程有三大概念:封裝、繼承、多態,今天我們就先從封裝開始講起。封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合為一個獨立的整體,並儘可能隱藏對象的內部實現細節。封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。
  • java如何快速入門?
    java如何快速入門正確掌握Java的基本知識由於Java為開發人員提供了如此多的特性和選項,人們有時會被分散注意力在太短的時間內學習了太多的東西java如何快速入門真正弄懂你敲出的代碼是做什麼的只要你理解了代碼背後的思想,算法和整個編譯過程就會顯得非常有意義。
  • 尚學堂知識整理:java面向對象設計(二)
    Java面向對象編程有三個主要特點。下面示例顯示了Mobile類和屬性,在使用構造函數參數創建對象時設置一次對象信息。可以使用具有公共(public)訪問修飾符的getXXX()方法來訪問屬性。繼承面向對象程序的一個重要特性是繼承 - 創建一個新類時共享現有類的屬性和方法。
  • Java基礎入門篇之面向對象和類的定義
    Java基礎入門篇之面向對象和類的定義 本文主要介紹了面向對象概念,面向對象的三個特點封裝性、繼承性、多態性。類的定義和創建對象與使用。詳細的介紹了怎麼去定義一個類,通過案例來理解怎麼去定義的。對象的創建與使用介紹了使用的格式,通過創建對象後,可以通過對象的引用來訪問對象的成員。
  • Golang入門教程——面向對象篇
    今天是golang專題的第9篇文章,我們一起來看看golang當中的面向對象的部分。在現在高級語言當中,面向對象幾乎是不可或缺也是一門語言最重要的部分之一。golang作為一門剛剛誕生十年的新興語言自然是支持面向對象的,但是golang當中面向對象的概念和特性與我們之前熟悉的大部分語言都不盡相同。比如Java、Python等,相比之下, golang這個部分的設計非常得簡潔和優雅(仁者見仁),所以即使你之前沒有系統地了解過面向對象,也沒有關係,也一定能夠看懂。
  • Java面向對象編程開發認證考試項目介紹
    2、職業定義java是面向對象編程的語言,面向對象編程有四個特點:抽象,封裝,繼承,多態。面向對象區別於bai以前的面向過程,du像Java、vb、vc都是zhi採用面向dao對象編zhuan程,當然更高級的還有面向接口編shu程。
  • 軟帝學院:Java程式設計師入門必看的 4 本 Java 書籍!
    作者:Kathy Sierra / Bert Bates簡介:《Head First Java》是一本完整地面向對象(object-oriented,OO)程序設計和Java的學習指導用書,根據學習理論所設計,你可以從程序語言的基礎開始
  • Python零基礎入門教程,面向對象有哪三大特性?
    大綱(面向對象的三大特性)封裝性繼承性多態性封裝性封裝隱藏了對象的屬性和方法內部實現細節,僅對外提供公共訪問方式,類的內部可以訪問,外部不可以訪問。外部訪問私有變量或者私有方法報錯繼承性現實生活中狗與動物之間的關係,狗具有動物的全部特徵和行為,在面向對象中動物被稱為「父類」,狗被稱為「子類
  • 為什麼入門大數據選擇Python而不是Java?
    今天我們就來談談學習大數據入門語言的選擇。當然並不只是我個人之見,此外我搜集了各路大神的見解綜合起來跟大家做個討論。java和python的區別到底在哪裡?官方解釋:Java是一門面向對象程式語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。
  • JAVA繼承總結
    今天來講講JAVA繼承總結:       Java中的繼承作為Java面向對象三大特性之一,在知識點上而言,還是很多的,而且java的繼承與覆蓋基本是java筆試中常出的題,也比較繞。下面小編來介紹下JAVA繼承的相關知識點:       繼承在本職上是特殊一般的關係,即常說的is-a關係。
  • 再談JavaScript面向對象編程
    導讀:陳皓曾發表過一篇文章《Javascript 面向對象編程》,珠玉在前,作者還是忍不住再畫蛇添足的補上一篇文章,主要是因為JavaScript這門語言魅力。另外這篇文章是一篇入門文章,是作者才開始學習Javascript,有一點心得,才想寫一篇這樣文章,文章中難免有錯誤的地方,還請各位不吝吐槽指正。
  • java入門必備書籍
    本書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC資料庫編程、Java注釋、Java的IO流體系、
  • java開發工程師 javascript面向對象的初識
    冰凍三尺非一日之寒,希望大家在學習java的日子裡一定一定要堅持不懈,嚴格要求。多練,多問,多百度。祝大家早日成為一名優秀的軟體工程師! 那麼如果要向一個html頁面中寫入js代碼,就必須定義一個<script></script>標籤,所有的js代碼都在這個<script>標籤中。
  • Java面向對象之final、abstract抽象、和變量生命周期
    Java面向對象之final、abstract抽象、final修飾符final但是需要注意的是:構造方法不能使用final修飾,因為構造方法不能夠被繼承。下面,咱們就來一一看看吧!()可被繼承,代碼編譯通過;final修飾的方法為最終的方法,該方法不能被子類覆蓋,故也不能使用方法重寫。
  • java編程從入門到放棄?關於Java自學,我的3點思考
    首先,Java作為一門適用性很強的語言,入門是不難的。但要系統全面地自學Java,那可就很難了!如果每個人都能通過自學,系統全面的掌握Java。我個人覺得java學習大致可以按這3個階段來:第一階段:基礎課程學習包含Java開發介紹、Java數組、Java面向對象、常用基礎類、集合、IO流、多線程、異常、反射等;
  • 每周 10 道 Java 面試題 : 面向對象, 類加載器, JDBC, Spring 基礎概念
    面試題答案討論請移步:https://github.com/jobbole/java-interview/issues/1Java面試題投遞交流請移步:https://github.com/jobbole/java-interview/issues/21. 為什麼說Java是一門平臺無關語言?
  • 給Java新手的一些建議——Java知識點歸納(Java基礎部分)
    寫這篇文章的目的是想總結一下自己這麼多年來使用java的一些心得體會,主要是和一些java基礎知識點相關的,所以也希望能分享給剛剛入門的Java程式設計師和打算入Java開發這個行當的準新手們,希望可以給大家一些經驗,能讓大家更好學習和使用Java。這次介紹的主要內容是和J2SE相關的部分,另外,會在以後再介紹些J2EE相關的、和Java中各個框架相關的內容。
  • Java基礎教學之面向對象概述
    面向對象概述尹成課程資料及演示AAAjiaoyuwang面向對象是一種符合人類思維習慣的編程思想。現實生活中存在各種形態不同的事物,這些事物之間存在著各種各樣的聯繫。在程序中使用對象來映射現實中的事物,使用對象的關係來描述事物之間的聯繫,這種思想就是面向對象。