1. 程式人生 > >Java基礎隨筆之過載、重寫、以及可變引數

Java基礎隨筆之過載、重寫、以及可變引數

1、概述

在java的面向物件思想中,包括繼承、封裝、多型。其中多型就分為過載和重寫。在體現同一個功能時,有時候在不同的外界條件下,需要傳遞同一種類型的引數集合,但是該集合的數量不確定,那麼在使用該功能時,必須傳遞規定資料型別的數集合作為引數。這種情況下往往我們喜歡使用集合List和陣列作為引數,其實也可以用可變引數。

2、過載(overload)

首先介紹過載,在java中的過載,就是類的同一種功能的多種實現方式,到底採用哪種方式,取決於呼叫者給出的引數。所以過載是針對物件中的方法所言的。以下是java中過載的規則: (1)方法名相同 
(2)方法的引數型別、個數、順序不至少有一項不同 
(3)方法返回型別可以不同 

(4)方法的許可權修飾符可以不同 
(5)如果只是返回型別不一樣,不能夠構成過載 
(6)如果只是控制訪問修飾符號不一樣,也是不能構成過載的 
(7)Overloaded的方法是可以改變返回值的型別。 

3、重寫(override)

在java中重寫,是子類重寫父類的方法。即子類有一個方法,和父類的某個方法的名稱、返回型別、引數一樣,那麼我們就說子類的這個方法覆蓋了父類的那個方法,即重寫。 以下是重寫的規則: (1)子類的方法的返回型別,引數,方法名稱,要和父類方法的返回型別,引數,方法名稱完全一樣,否則編譯出錯。 
(2) 子類方法不能縮小父類方法的訪問許可權(反過來是可以的) 

4、java1.5之後的可變引數

在java1.5之後為我們提供了可變引數的概念。所謂可變引數就是指:就是同一種資料的集合作為方法的引數。 可變引數有以下幾個規則需要注意: (1)只能放在方法引數列表的最後; (2)…位於變數型別和變數名之間,前後有無空格都可以; (2)呼叫可變引數的方法時,編譯器為該可變引數隱含建立一個數組,在方法體中以陣列的形式訪問可變引數。 比如 public int add(int firstNum,int …args);