本篇轉自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