日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承

發布時間:2025/3/15 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、封裝

概念:隱藏程序內部的具體實現細節,對外提供接口,從而提高程序的安全性。

高內聚,低耦合。

使用封裝的步驟:

1、屬性私有化,使用private訪問修飾符進行修飾

2、對外提供 setter/getter 方法 setter設置值 getter獲取值

3、在setter語句中進行邏輯語句進行判斷

訪問修飾符的使用

public 公共的

protected 受包保護的

默認修飾符 默認訪問修飾符,不可顯示定義

private 私有的只有本類可以訪問

二、繼承

2.1 Object類:

所有類的基類。(父類)

Java是單根繼承,子類只有一個直接父類。但Java有傳承性。子類可以有多個間接父類。

2.2 使用繼承后,子類不能繼承父類的那些成員:

private私有化的

構造方法(只能調用,不可繼承)

不同包中的,默認訪問修飾符修飾的成員。(protected、public修飾的可以)

//static 靜態使用 //被包保護的靜態常量 //數據共享時 static 靜態 //當數據不經常更改時 final 常量 //當數據既是共享的也不易于更改時 static final 靜態常量 protected static final String GIRL = "雌"; protected static final String BOY = "雄";

2.3 繼承的優缺點

優點: 提高代碼的復用性

提高代碼的維護性(一改即可改全部)

讓類與類之間產生了關系,是多態的前提

缺點: 類的耦合性增強

開發的原則:高內聚低耦合

耦合:類與類的關系

內聚:自己處理某件事情的能力

關鍵字 extends

目的:減少代碼量,方便后期維護修改。

符合繼承的關系: is a

使用步驟: 將多個程序類中的共同的特征抽取出來,形成一個公共的類。這個公共的類叫父類,實現繼承這個公共的父類的程序,叫做子類。

繼承的語法:

訪問修飾符 子類 extends 父類{ //成員變量 //成員方法 }

子類繼承父類后構造的執行順序:先父類后子類

當子類構造沒有顯示調用父類任意構造時,系統會隱式默認調用父類無參構造方法。

當子類構造顯示調用了父類任意構造時,系統就不會隱式默認調用父類無參構造方法。

此時程序執行時,只會調用子類構造調用的對應父類構造方法,且該類調用的構造方法必須放在首行

2.4 代碼示例

讓類與類之間產生關系,子父類關系

例如 狗類貓類都屬于動物類

Animal 是父類

Dog Cat 是子類

public

2.5 繼承的特點

只支持單繼承(一個兒子繼承一個父親)

不支持多繼承(有些語言支持多繼承,格式:extends 類1,類2)

Java支持多層繼承(繼承體系,兒子繼承父親,父親繼承爺爺)

如果想用這個體系的所有功能中

即DemoC多層繼承了DemoB和DemoC 用最底層的類創建對象

如果想看這個體系的共性功能

即DemoB和DemoC 都從DemoA繼承 看最頂層的類

2.6 繼承的注意事項

繼承是 is a 的關系

學生 老師 是 人

蘋果 西瓜 是 水果

狗 貓 是 動物

如果有A、B兩個類 若A是B的一種,或B是A的一種就可以考慮使用繼承。

2.7 繼承中成員變量的關系

子父類不同名變量,沒有影響

子父類同名變量(開發中不允許出現這種情況,子類繼承父類就是為了使用父類的成員,

自己再定義同名的成員變量就失去了繼承的意義),

就近原則,即子類自己有就不用父類的

2.8 this與super的區別

2.9 繼承中構造方法的關系

構造方法:進行初始化

因為子類初始化之前要先完成父類的初始化

子類中所有的構造方法都會默認訪問父類中空參數的構造方法

父類初始化完成后才輪到子類

2.10 構造方法的注意事項

this與super不能同時出現

當父類沒有無參構造方法時

使用setXxx( ) getXxx( )方法

2.11 繼承中成員方法的關系

不同名的方法名

直接使用

同名的方法名

若想使用父類的方法 使用 super. 調用

方法重寫

2.12 static關鍵字的使用

被static修飾的變量叫做靜態變量或類變量

被static修飾的方法叫做靜態方法或類方法

被static修飾的代碼塊叫做靜態代碼塊

被static修飾的成員,直接通過 類名.成員(屬性、方法);

static的使用場景:

數據共享時 static 靜態

當數據不經常更改時 final 常量

當數據既是共享的也不易于更改時 static final 靜態常量

靜態修飾的成員和非靜態修飾成員的區別:

非靜態(實例) 成員變量和成員方法 可以是靜態也可以是非靜態

注意: 實例方法和靜態方法可以直接調用static 但不可定義static 因為static稱為類變量

只能在類中定義

靜態只能訪問靜態

靜態方法不能【直接】調用非靜態(實例)成員

2.13 類變量(靜態變量)和實例變量(對象變量,成員變量)的區別?

(1)所屬不同:類變量屬于類,是對象的共性內容;實例變量屬于對象,是對象的特性內容。

(2)在內存中位置不同:類變量存在方法區的靜態區,拷貝只有一份;實例變量存在堆內存中,拷貝可以有一份或者多份。

(3)生命周期不同:類變量隨著類的加載而存在,隨著類的消失而消失;實例變量隨著對象的存在而存在,隨著對象的消失而消失。

(4)調用方式不同:類變量既能被類名點的形式調用,也能通過對象點的形式調用;而實例變量只能通過對象點的形式調用。通過實例化對象名. 實例化變量 操作。

2.14 abstract

abstract修飾的類為抽象類 不能被實例化

抽象類中可以定義0~多個抽象方法

繼承抽象類的子類,該子類必須重寫父類中的所有抽象方法,除非該子類也是一個抽象類。

抽象方法必須存在于在抽象類中

abstract修飾的方法為抽象方法 沒有方法體

抽象類的使用場景:

父類沒有必要實現方法的具體細節

父類強制要求子類必須實現的功能方法

2.15 方法重寫

可理解為子類重寫父類方法

前提:存在繼承關系

概念:不同類中,方法名相同。參數列表相同。

子類的訪問修飾符不能嚴于父類

子類的方法返回值類型和父類的返回值類型相同,或者是其子類。

簡寫:不同類,同名,同參,與方法返回值類型和返回修飾符有關。

子類重寫父類的常見方法:

toString();

equals();

2.16 方法重載

簡寫:同類,同名,不同參,與方法返回值類型和返回修飾符無關。

2.17 代碼塊的執行順序

靜態代碼塊只執行一次

構造代碼塊優先于構造方法

先有父類再有子類 即使用子類構造方法前要先進行父類構造方法

public class Text01 { public static void main(String[] args) { Zi z = new Zi(); } } class Fu { static { System.out.println("Fu靜態代碼塊"); }

{ System.out.println("Fu構造代碼塊"); } public Fu() { System.out.println("Fu構造方法"); }

}

class Zi extends Fu { static { System.out.println("Fu靜態代碼塊"); }

{ System.out.println("Zi構造代碼塊"); } public Zi() { System.out.println("Zi構造方法"); } }

總結

以上是生活随笔為你收集整理的子类怎么继承父类方法中的变量_JavaOOP_04 封装 继承的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。