第二十八節:Java基礎-進階繼承,抽象類,介面
標題圖
前言
Java
基礎-進階繼承,抽象類,介面
進階繼承
class Stu { int age = 1; }class Stuo extends Stu { int agee = 2; }class Demo{ Stuo stuo = new Stuo(); }
成員變數的特殊情況
成員函式
class Stu{ void show(){ System.out.println("Stu show"); } }class Stue extends Stu{ void show(){ System.out.println("Stu show run"); } }class Demo{ public static void mian(String[] args){ Stue stue = new Stue(); stue.show(); } }
重寫
override
重寫,覆蓋,複寫
寫法:函式的返回值型別,函式名,引數列表都要一樣
子父類中建構函式的特點
在子類和父類中都有建構函式,執行時,先執行父類中的建構函式,在執行子類的建構函式,因為子類的所有建構函式中第一行都有一句,隱式的super()
;,表示為呼叫父類的無參的建構函式。
在子類中為什麼有super()
呢,子類會一旦繼承父類,會繼承父類中的內容,子類在初始化的時候,會先到父類進行父類的初始化操作,這沒問題吧,因為這樣才可以使用父類中的內容。
子類中所有的建構函式,都會訪問父類中預設的空參函式。
class Student extends Person{ Student(){ // super(); System.out.println("dashucoding"); } Student(String name){ this(); // 呼叫Student()的方法 System.out.println("dashucoding"); } }
如this
關鍵字的描述,在子類中我們會用到this
關鍵字,this
是寫在建構函式的第一行,用來呼叫本類的其他建構函式的,那麼還會有super()
了嗎,沒有了。super()
也是用來放在第一行的,用來顯示初始化的。
在建構函式中,第一行預設都是super()
,所有物件的父類都是Object
類,所以父類中的建構函式預設第一行,除非自己寫,否則都是隱式的super()
,用來訪問父類中的建構函式。
this
語句和super
語句必須在第一行
子類例項化過程的應用
class Person{ private String name; private int age; public Person(String name,int age){ this.name = name; this.age = age; } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setAge(int age){ this.age = age; } public int getAge(){ return age; } }
class Student extends Person { public Student(String name,int age){ super(name,age); } }
final關鍵字
final
關鍵字用來修飾變數,另外在Java
中的String
類表示為字串,字串是常量,它的值在建立以後不能被修改,而字串緩衝區中的字串可變。
修飾符,修飾變數,方法,類
final
修飾的類為最終類,修飾方法為最終方法,不能被重寫
抽象類abstract
抽象類是一個父類,具有自己的建構函式,但是不能給自己的物件進行初始化,卻可以給自己的子類物件進行初始化。
包含抽象方法的類叫做抽象類,抽象類中抽象方法是不完整的,僅有宣告而沒有方法體。一個類中包含一個或者多個抽象方法,則這個類被叫做為抽象類。
介面
介面解決了多繼承的問題,將多繼承的這種機制在
java
中透過介面實現了,介面與介面之間是繼承的關係。
interface A{ void showa(); }interface B{ void showb(); }class C implements A,B{ public void showa(){}; public void showb(){}; }
抽象類是用來描述事物的基本功能,抽象類中可以沒有抽象方法,但是具有抽象方法的類定為抽象類,介面中定義只能是抽象方法。
作者:達叔小生
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756/viewspace-2818764/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- Java之繼承和抽象類Java繼承抽象
- Java基礎-抽象類和介面Java抽象
- 介面是否可繼承(extends)介面? 抽象類是否可實現 (implements)介面? 抽象類是否可繼承具體類(concrete class)?繼承抽象
- PHP 抽象類繼承抽象類時的注意點PHP 抽象類繼承抽象類時的注意點PHP抽象繼承
- JAVA基礎之三-介面和抽象類Java抽象
- 【JAVA】筆記(5)--- final;抽象方法;抽象類;介面;解析繼承,關聯,與實現;Java筆記抽象繼承
- Java抽象類、繼承及多型和介面卡的實現Java抽象繼承多型
- 關於Java中的物件、類、抽象類、介面、繼承之間的聯絡Java物件抽象繼承
- JavaScript基礎: 類與繼承JavaScript繼承
- 【Java】繼承、抽象、組合Java繼承抽象
- 物件導向 -- 三大特性之繼承 補充 抽象類 介面類物件繼承抽象
- java繼承基礎詳解Java繼承
- TypeScript 介面繼承類TypeScript繼承
- JAVA類的頂層Type抽象和繼承關係Java抽象繼承
- Java集合為什麼設計為:實現類繼承了抽象類,同時實現抽象類實現的介面Java繼承抽象
- Java 基礎學習總結(一)抽象類和介面Java抽象
- Java開發筆記(四十八)類的簡單繼承Java筆記繼承
- 【廖雪峰python進階筆記】類的繼承Python筆記繼承
- JavaScript進階之繼承JavaScript繼承
- JS進階系列 --- 繼承JS繼承
- 6-2 抽象類的繼承 (5分)抽象繼承
- 類的繼承,介面的使用繼承
- Java的抽象類 & 介面Java抽象
- 繼承 基類與派生類繼承
- Java 自學 - 介面與繼承 介面Java繼承
- JAVA學習線路:day01物件導向(繼承、抽象類)Java物件繼承抽象
- [打牢基礎系列]JavaScript的類與繼承JavaScript繼承
- Java基礎之淺談繼承、多型Java繼承多型
- 【Java面試題-基礎知識02】Java抽象類和介面六連問?Java面試題抽象
- python 基礎之繼承、重寫、多繼承Python繼承
- 【Go進階—基礎特性】介面Go
- Java基礎內部類4-內部類進階Java
- JavaSE基礎知識學習—–抽象類和介面Java抽象
- java中抽象類和介面Java抽象
- 類的繼承_子類繼承父類繼承
- C#介面、抽象類、普通類和繼承(子類與父類)都有其特定的用途和場景C#抽象繼承
- java 的 四 個 基 本 特 性 ——封裝 繼承 多型 抽象Java封裝繼承多型抽象