java物件導向(4)
關鍵字final
最終。作為一個修飾符,
1,可以修飾類,函式,變數。
2,被final修飾的類不可以被繼承。為了避免被繼承,被子類複寫功能。
3,被final修飾的方法不可以被複寫。
4,被final修飾的變數是一個常量只能賦值一次,既可以修飾成員變數,有可以修飾區域性變數。
當在描述事物時,一些資料的出現值是固定的,那麼這時為了增強閱讀性,都給這些值起個名字。方便於閱讀。
而這個值不需要改變,所以加上final修飾。作為常量:常量的書寫規範所有字母都大寫,如果由多個單片語成。單詞間透過_連線。
5,內部類定義在類中的區域性位置上時,只能訪問該區域性被final修飾的區域性變數
1,可以修飾類,函式,變數。
2,被final修飾的類不可以被繼承。為了避免被繼承,被子類複寫功能。
3,被final修飾的方法不可以被複寫。
4,被final修飾的變數是一個常量只能賦值一次,既可以修飾成員變數,有可以修飾區域性變數。
當在描述事物時,一些資料的出現值是固定的,那麼這時為了增強閱讀性,都給這些值起個名字。方便於閱讀。
而這個值不需要改變,所以加上final修飾。作為常量:常量的書寫規範所有字母都大寫,如果由多個單片語成。單詞間透過_連線。
5,內部類定義在類中的區域性位置上時,只能訪問該區域性被final修飾的區域性變數
抽象類
當多個類中出現相同功能,但是功能主體不同,
這是可以進行向上抽取。這時,只抽取功能定義,而不抽取功能主體。
抽象:看不懂。
抽象類的特點:
1,抽象方法一定在抽象類中。
2,抽象方法和抽象類都必須被abstract關鍵字修飾。
3,抽象類不可以用new建立物件。因為呼叫抽象方法沒意義。
4,抽象類中的抽象方法要被使用,必須由子類複寫起所有的抽象方法後,建立子類物件呼叫。
如果子類只覆蓋了部分抽象方法,那麼該子類還是一個抽象類。
抽象類和一般類沒有太大的不同。
該如何描述事物,就如何描述事物,只不過,該事物出現了一些看不懂的東西。
這些不確定的部分,也是該事物的功能,需要明確出現。但是無法定義主體。
透過抽象方法來表示。
抽象類比一般類多個了抽象函式。就是在類中可以定義抽象方法。
抽象類不可以例項化。
特殊:抽象類中可以不定義抽象方法,這樣做僅僅是不讓該類建立物件。
練習:
abstract 關鍵字,和哪些關鍵字不能共存。
final:被final修飾的類不能有子類。而被abstract修飾的類一定是一個父類。
private: 抽象類中的私有的抽象方法,不被子類所知,就無法被複寫。
而抽象方法出現的就是需要被複寫。
static:如果static可以修飾抽象方法,那麼連物件都省了,直接類名呼叫就可以了。
可是抽象方法執行沒意義。
抽象類中是否有建構函式?
有,抽象類是一個父類,要給子類提供例項的初始化。
這是可以進行向上抽取。這時,只抽取功能定義,而不抽取功能主體。
抽象:看不懂。
抽象類的特點:
1,抽象方法一定在抽象類中。
2,抽象方法和抽象類都必須被abstract關鍵字修飾。
3,抽象類不可以用new建立物件。因為呼叫抽象方法沒意義。
4,抽象類中的抽象方法要被使用,必須由子類複寫起所有的抽象方法後,建立子類物件呼叫。
如果子類只覆蓋了部分抽象方法,那麼該子類還是一個抽象類。
抽象類和一般類沒有太大的不同。
該如何描述事物,就如何描述事物,只不過,該事物出現了一些看不懂的東西。
這些不確定的部分,也是該事物的功能,需要明確出現。但是無法定義主體。
透過抽象方法來表示。
抽象類比一般類多個了抽象函式。就是在類中可以定義抽象方法。
抽象類不可以例項化。
特殊:抽象類中可以不定義抽象方法,這樣做僅僅是不讓該類建立物件。
練習:
abstract 關鍵字,和哪些關鍵字不能共存。
final:被final修飾的類不能有子類。而被abstract修飾的類一定是一個父類。
private: 抽象類中的私有的抽象方法,不被子類所知,就無法被複寫。
而抽象方法出現的就是需要被複寫。
static:如果static可以修飾抽象方法,那麼連物件都省了,直接類名呼叫就可以了。
可是抽象方法執行沒意義。
抽象類中是否有建構函式?
有,抽象類是一個父類,要給子類提供例項的初始化。
介面
介面:初期理解,可以認為是一個特殊的抽象類
當抽象類中的方法都是抽象的,那麼該類可以透過介面的形式來表示。
class用於定義類
interface 用於定義介面。
介面定義時,格式特點:
1,介面中常見定義:常量,抽象方法。
2,介面中的成員都有固定修飾符。
常量:public static final
方法:public abstract
記住:介面中的成員都是public的。
介面:是不可以建立物件的,因為有抽象方法。
需要被子類實現,子類對介面中的抽象方法全都覆蓋後,子類才可以例項化。
否則子類是一個抽象類。
介面可以被類多實現,也是對多繼承不支援的轉換形式。java支援多實現。
當抽象類中的方法都是抽象的,那麼該類可以透過介面的形式來表示。
class用於定義類
interface 用於定義介面。
介面定義時,格式特點:
1,介面中常見定義:常量,抽象方法。
2,介面中的成員都有固定修飾符。
常量:public static final
方法:public abstract
記住:介面中的成員都是public的。
介面:是不可以建立物件的,因為有抽象方法。
需要被子類實現,子類對介面中的抽象方法全都覆蓋後,子類才可以例項化。
否則子類是一個抽象類。
介面可以被類多實現,也是對多繼承不支援的轉換形式。java支援多實現。
介面特點:
介面是對外暴露的規則
介面是程式的功能擴充套件
介面可以用來多實現
類與介面之間是實現關係,而且類可以繼承一個類的同時實現多個介面
介面與介面之間可以有繼承關係
多型
可以理解為事物存在的多種體現形態
1.多型的體現
父類的引用指向了自己的子類物件
父類的引用也可以接收自己的子類物件
2.多型的前提
必須是類與類之間有關係。要麼繼承,要麼實現。通常還有一個前提:存在覆蓋
3.多型的好處
多型的出現大大的提高了程式的擴充套件性
4.多型的弊端
提高了擴充套件性,但是隻能使用父類的引用訪問父類中的成員
5.多型的應用
在多型中成員函式的特點:
在編譯時期:參閱引用型變數所屬的類中是否有呼叫的方法。如果有,編譯透過,如果沒有編譯失敗。
在執行時期:參閱物件所屬的類中是否有呼叫的方法。
簡單總結就是:成員函式在多型呼叫時,編譯看左邊,執行看右邊。
在多型中,成員變數的特點:
無論編譯和執行,都參考左邊(引用型變數所屬的類)。
在多型中,靜態成員函式的特點:
無論編譯和執行,都參考做左邊。
在編譯時期:參閱引用型變數所屬的類中是否有呼叫的方法。如果有,編譯透過,如果沒有編譯失敗。
在執行時期:參閱物件所屬的類中是否有呼叫的方法。
簡單總結就是:成員函式在多型呼叫時,編譯看左邊,執行看右邊。
在多型中,成員變數的特點:
無論編譯和執行,都參考左邊(引用型變數所屬的類)。
在多型中,靜態成員函式的特點:
無論編譯和執行,都參考做左邊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27026361/viewspace-1182854/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java物件導向作業4Java物件
- Java物件導向Java物件
- [Java物件導向]Java物件
- Java — 物件導向Java物件
- JAVA物件導向基礎--物件導向介紹Java物件
- Java:Java的物件導向Java物件
- java物件導向(上)Java物件
- java物件導向(中)Java物件
- JAVA物件導向思想Java物件
- [Java物件導向]finalJava物件
- Java物件導向(一)Java物件
- java的物件導向Java物件
- Java 物件導向概述Java物件
- Java物件導向——類與物件Java物件
- JAVA物件導向--抽象類Java物件抽象
- Java基礎 --- 物件導向Java物件
- Java物件導向--多型Java物件多型
- [Java物件導向]static方法Java物件
- JAVA物件導向之多型Java物件多型
- JAVA物件導向基礎Java物件
- 二、Java之物件導向Java物件
- java物件導向繼承Java物件繼承
- 物件導向-物件導向思想物件
- PHP學習4——物件導向PHP物件
- java基礎二:物件導向Java物件
- java物件導向作業3Java物件
- Java物件導向三大特徵Java物件特徵
- Java物件導向詳解-上Java物件
- java 物件導向必懂概述Java物件
- Java物件導向三大特性Java物件
- Java--物件導向設計Java物件
- 物件導向之封裝(Java)物件封裝Java
- 「MoreThanJava」Day 4:物件導向基礎Java物件
- Java語言之物件導向—類與物件(上)Java物件
- 好程式設計師Java教程分享Java物件導向與程式導向程式設計師Java物件
- java物件導向的面試題Java物件面試題
- Java007-物件導向(多型)Java物件多型
- Java基礎-物件導向基礎Java物件
- JAVA物件導向基礎--異常Java物件