Java面向对象(二、继承)
生活随笔
收集整理的這篇文章主要介紹了
Java面向对象(二、继承)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java 繼承
繼承的概念
繼承是java面向對象編程技術的一塊基石,因為它允許創建分等級層次的類。 繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。 生活中的繼承: 兔子和羊屬于食草動物類,獅子和豹屬于食肉動物類。 食草動物和食肉動物又是屬于動物類。 所以繼承需要符合的關系是:is-a,父類更通用,子類更具體。 雖然食草動物和食肉動物都是屬于動物,但是兩者的屬性和行為上有差別,所以子類會具有父類的一般特性也會具有自身的特性。類的繼承格式
在 Java 中通過 extends 關鍵字可以申明一個類是從另外一個類繼承而來的,一般形式如下: class 父類 { }class 子類 extends 父類 { }為什么需要繼承
接下來我們通過實例來說明這個需求。 開發動物類,其中動物分別為企鵝以及老鼠,要求如下:- 企鵝:屬性(姓名,id),方法(吃,睡,自我介紹)
- 老鼠:屬性(姓名,id),方法(吃,睡,自我介紹)
繼承的特性
- 子類擁有父類非private的屬性,方法。
- 子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
- 子類可以用自己的方式實現父類的方法。
- Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關系就是C類是B類的父類,B類是A類的父類,這是java繼承區別于C++繼承的一個特性。
- 提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系)。
繼承關鍵字(extends)
繼承可以使用 extends 關鍵字,而且所有的類都是繼承于 java.lang.Object,當一個類沒有繼承extends關鍵字,則默認繼承object(這個類在?java.lang?包中,所以不需要?import)祖先類。 在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。 public class Penguin extends Animal{ } super 與 this 關鍵字 當new一個對象出來的時候,這個對象會產生一個this的引用,這個this引用指向對象自身并且this只能在類中的非靜態方法中使用。如果new出來的對象是一個子類對象的話,那么這個子類對象里面還會有一個super引用,這個super指向當前對象里面的父對象。所以相當于程序里面有一個this,this指向對象自己,還有一個super,super指向當前對象里面的父對象。在繼承中super關鍵和this作用類似,使得被隱藏的成員變量或者成員方法變為可見,或者說用來引用被隱藏的成員變量和成員成員方法。super關鍵字:
1:調用父類的構造方法(構造函數) 子類不能繼承父類的構造器(構造方法或者構造函數),但是父類的構造器帶有參數的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器并配以適當的參數列表并且“super(參數列表)”這條語句只能用在子類構造方法體中的第一行。如果父類有無參構造器,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統會自動調用父類的無參構造器。 super(); //調用父類無參構造函數 super("參數") //調用父類有參構造函數 2:引用父類的屬性和方法 由于繼承過來的屬性和方法是默認隱藏的,所以當需要使用從父類繼承過來的屬性和方法時需要用super關鍵字來調用,并且引用這兩者時都必須放在子類方法的方法體中。 super.屬性名 //引用子類已繼承的屬性 super.方法名(參數列表) //引用子類已繼承的方法this關鍵字:
指向自己的引用。(this是指向對象本身的一個指針)。? 更詳細的介紹請看下面的博客: http://lavasoft.blog.51cto.com/62575/18886/關于子類不能繼承到那些父類的元素
1:父類的構造函數 2:父類的屬性和方法方面與他們的修飾符有關,與訪問修飾符保持一致。轉載于:https://www.cnblogs.com/ytsbk/p/7436292.html
總結
以上是生活随笔為你收集整理的Java面向对象(二、继承)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [原创]位运算符实现两个整数加法运算
- 下一篇: java美元兑换,(Java实现) 美元