摘要:上學學的完全沒印象,基礎爛的不行,最近項目主要是改,有時間就看了一下這本書補一下基礎在寫項目時,老用到繼承,但是對其了解不深,會用但是不理解概念繼承是面向對象編程技術的一塊基石,因為它允許創建分等級層次的類。
上學學的完全沒印象,Java基礎爛的不行,最近項目主要是改bug,有時間就看了一下Head First Java這本書補一下基礎
在寫項目時,老用到Java繼承,但是對其了解不深,會用但是不理解
概念繼承是java面向對象編程技術的一塊基石,因為它允許創建分等級層次的類。
繼承就是子類繼承父類的特征和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
語法格式Java 中通過 extends繼承,implement實現接口,一般形式如下:
class 父類 { } interface 接口{ } class 子類 extends 父類, implement 接口 { }
需要注意的是 Java 不支持類的多繼承,但可以實現多個接口。
繼承的特性子類擁有父類非 private 的屬性、方法,實現了代碼復用。
本質上來說子類會繼承父類的所有屬性(包括private),只是私有屬性和方法無法直接使用。
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
子類可以用自己的方式實現父類的方法,即重寫/覆寫(Override)。
Java 的類繼承是單繼承,不支持多繼承,單繼承就是一個子類只能繼承一個父類,這是 Java 繼承區別于 C++ 繼承的一個特性。
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系越緊密,代碼獨立性越差)。
繼承的關鍵字繼承可以使用 extends 和 implements 這兩個關鍵字來實現繼承,而且所有的類都是繼承于 java.lang.Object,當一個類沒有繼承的兩個關鍵字,則默認繼承object(這個類在 java.lang 包中,所以不需要 import)祖先類。
extends
在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。
implements
使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承接口的情況,可以同時繼承多個接口(接口跟接口之間采用逗號分隔)。
public interface A { public void eat(); public void sleep(); } public interface B { public void wolf(); } public class C implements A,B { }super this與final 關鍵字
super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。
this關鍵字:指向自己的引用。
final 關鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用于修飾方法,該方法不能被子類重寫.
實現繼承A.java
public class A { public int num = 1; public int getNum() { return num; } }
B.java
public class B extends A { }
Main.java
public class Main { public static void main(String[] args) { B b1 = new B(); System.out.println("b1.num = " + b1.num);//通過訪問數據域得到num的值 System.out.println("b1.getNum return " + b1.getNum());//通過get方法得到num的值 } }
結果:
b1.num = 1
b1.getNum return 1
可以發現我們沒有在class B中沒有定義任何數據域和方法,但是子類B可以繼承父類A所有可以訪問的數據域和方法。
回顧(到底上學的時候學的什么)想想上學時候老師都講了點啥,完全沒有印象,看了之前的U盤
發現,上學時老師把一些知識點給我們總結成了Word,發給了我們,但是一點印象都沒有,甚至不知道是干什么的。
潘老師,總是和我們說工程和科學之間的區別,感覺有了更深得體會。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77596.html
摘要:中很多特性或者說知識點都是和面向對象編程概念相關的。在多線程中內容有很多,只是簡單說明一下中初步使用多線程需要掌握的知識點,以后有機會單獨再詳細介紹一些高級特性的使用場景。 寫這篇文章的目的是想總結一下自己這么多年來使用java的一些心得體會,主要是和一些java基礎知識點相關的,所以也希望能分享給剛剛入門的Java程序員和打算入Java開發這個行當的準新手們,希望可以給大家一些經...
摘要:自制力好的人,估計在保存后會翻出來看兩眼,過幾天又忘得一干二凈了。多思考學會思考,養成多思考的習慣。以項目來驅動自己學習,整個過程將會有趣得多。后語以上就是我對自學的幾點建議,希望對你們有幫助。 微信公眾號:一個優秀的廢人如有問題或建議,請后臺留言,我會盡力解決你的問題。 showImg(https://segmentfault.com/img/remote/1460000018208...
摘要:實現多態的三個必要條件繼承在多態中必須存在有繼承關系的子類和父類。參考面試題解惑系列九繼承多態重載和重寫面向對象三大特性封裝,繼承,多態以及抽象接口的介紹 版權聲明:本文由吳仙杰創作整理,轉載請注明出處:https://segmentfault.com/a/1190000009141566 1. 面向對象編程的三大特性 Java 面向對象編程有三大特性:封裝、繼承、多態。 1.1 封裝...
摘要:快速了解繼承在的繼承關系里子類可以從獲取父類的所有的公共和受保護成員字段方法和內部類。阻止繼承有些情況下,我們可能不希望子類覆蓋父類的方法,這時候,用關鍵字修飾方法即可實現該目的。 和現實世界中:子女可以繼承父母的一些特征(如:基因)、財產等一樣。OOP 中也有提供類似的特性,一個類完全可以從其它類里獲得一些屬性和方法,而不需要我們自己重新定義。這種特性簡單但強大 (Simple an...
摘要:眾多面向對象的編程思想雖不盡一致,但是無論哪種面向對象編程語言都具有以下的共通功能。原型編程以類為中心的傳統面向對象編程,是以類為基礎生成新對象。而原型模式的面向對象編程語言沒有類這樣一個概念。 什么是面向對象?這個問題往往會問到剛畢業的新手or實習生上,也是往往作為一個技術面試的開頭題。在這里我們不去談如何答(fu)好(yan)問(guo)題(qu),僅談談我所理解的面向對象。 從歷...
閱讀 2000·2023-04-25 16:53
閱讀 1442·2021-10-13 09:39
閱讀 606·2021-09-08 09:35
閱讀 1639·2019-08-30 13:03
閱讀 2121·2019-08-30 11:06
閱讀 1831·2019-08-30 10:59
閱讀 3188·2019-08-29 17:00
閱讀 2288·2019-08-23 17:55