Java 面向對象的三個特征
面向對象主要由三大特性:
- 封裝
- 繼承
- 多態
Java是一種面向對象的程序設計語言,面向對象就是再計算機設計程序過程中,參照現實中事物,講事物的屬性特征、行為特征抽象出來,描述成計算機事件的設計思想。
什么是類? 類是一種相關屬性和行為的集合。是抽象的
什么是對象?對象是一類事物的具體體現。即對象是類的一個實例。
一、封裝
封裝定義:編寫一個類就是對數據和數據的操作封裝,封裝即時隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口。
封裝原則:將屬性隱藏起來,若需要訪問某個熟悉,提供公共方法對其訪問。
封裝的步驟: 1. 使用private 關鍵字修飾成員變量。 2. 對需要訪問的成員變量,提供對應的getXxx 和 setXxx 方法。
二、繼承
繼承定義: 子類繼承父類的特征和行為。提供繼承信息的類被稱為父類(基類),得到繼承信息的類被稱為子類(派生類)
繼承特點:1、一個類只能繼承一個父類,構造方法不能被繼承。 2、支持多層繼承 3、父類private 的屬性和方法不能繼承
繼承格式:
class 父類 { }
class 子類 extends 父類 { }
super 和 this : super.成員變量---父類 super.成員方法 ---父類
this.成員變量---本類 this.成員方法 ---本類
三、多態
多態定義:同一個行為具有多個不同表現形式或形態能力。
優點: 1、消除類型之間耦合關系 2、可擴充性 3、接口性 4、靈活性 5、簡化性 6、可替換行
多態實現方式:
方式一:重載與重寫
重載:在一個類中,同一個方法名稱,不同的參數類型及個數,可以完成不同功能。
重寫:同一個方法名稱,子類繼承父類的方法,根據操作的子類不同,所完成的功能也不同。
方式二:抽象類和抽象方法
抽象方法:一個沒有方法體的方法稱為抽象方法。 格式:修飾符 abstract 返回值類型 方法名(參數列表){}
抽象類:abstract class 類名{}
特點:1、抽象類中不一定有抽象方法,但有抽象方法的類一定是抽象類
2、抽象類不可以是實例化
3、抽象類的子類,可以是抽象類,也可以是具體類。如果子類為具體類,需要重寫抽象類中所有抽象方法
方式三:接口
定義:是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。
接口無法被實例化,但是可以被實現. 一個實現接口的類,必須實現接口內所描述的所有方法,否則就必須聲明為抽象類。
接口與類的區別:
1、接口不能用於實例化對象。
2、接口沒有構造方法
3、接口中所有的方法必須是抽象方法。
4、接口只能被類實現,不能被類繼承。
5、接口支持多繼承。
6、接口只能含 static 和final 變量。
接口與抽象的區別:
1、一個類只能繼承一個抽象類, 而一個類可以實現多個接口。
2、抽象類中的方法可以有方法體, 接口中的方法必須是抽象方法,無方法體。
3、抽象類中的成員變量可以是各種類型,而接口中的成員變量只能是 public static final 類型。
4、抽象類可以有靜態代碼塊和靜態方法,接口中不能含 靜態static 修飾的方法。
final 關鍵字:
表示最終的意思,可修飾類、成員方法、成員變量
修飾類:類不可被繼承
修飾成員方法:方法不能被重寫
修復成員變量:變量為常量,值不可以改變