java基礎學習之三:方法的過載和重寫
一、方法
方法:在C、C++語言中稱作函式
一個方法包括方法簽名如:animal(String str),和返回值型別int
方法簽名:包括方法名animal和引數String str
一個方法的實現形式可以是多樣的,
比如說:一個叫做“盆”的東西,可以做很多事情,比如,洗臉,洗衣服,。。。。這就體現了事物的多樣性,這叫做多型;
同樣一個方法名的方法也可以被賦予多重功能,這叫做方法的過載,override,
方法過載的區別在於 方法引數的個數或者型別的不同,而不在於返回值型別,比如:
package test;
public class Foo {
public int animal(String str){
System.out.println("Foo animal 1");
return 1;
}
//過載
public void animal(int a){
System.out.println(a);
}
}
過載也可以發生在不同的類中:
------比如在子類中也可以出現過載;
子類繼承父類會獲得父類的成員變數和成員方法:
在子類中可以直接對父類的方法做過載,而不需要顯式表示父類的方法; 例如Coo 繼承了Foo 並且對animal進行過載.如下:
package test;
public class Coo extends Foo {
public void animal(){
System.out.println("animal");
}
}
過載對修飾詞沒有太大要求;修飾詞:public private ,protected這類詞;
public 修飾方法:方法可以在本工程任何地方呼叫,
private修飾方法,只能在本類中呼叫,
protected修飾方法,則可以子類中和本包中呼叫;
二、另外類還提供了另外一個功能,重寫overwrite
重寫提高了類的多型性,使得方法的功能有多樣性;
下面是一個重寫的例子:
package test;
public class Coo extends Foo {
public int animal (String a){
System.out.println("animal2");
return 0;
}
public void animal(){
System.out.println("animal");
}
}
重寫:百度百科的說法:當一個子類繼承一父類,而子類中的方法與父類中的方法的名稱,引數個數、型別都完全一致時,就稱子類中的這個方法重寫了父類中的方法。;;但是我認為重寫就是為了要改變父類方法的功能,否則重寫無意義;
重寫有五個限制:
1、必須是在繼承裡
2、方法名、引數個數和引數型別 都必須相同
3、jdk1.5以後,返回值型別可以與父類相同,也可以與父類不同,但是要求返回值型別是父類的子類。如: 父類的返回值型別是Object類,子類的返回值可以是Object類的子類比如String[1]
4、派生類重寫的方法的訪問許可權不能低於基類的許可權
5、派生類丟擲的異常應該和基類相等或比基類更小
相關文章
- 【JAVA】重寫和過載Java
- Java中的過載和重寫Java
- Java中方法重寫與方法過載Java
- Python中有重寫和過載的方法嗎?Python
- 《java程式設計基礎》方法的過載Java程式設計
- 過載和重寫的區別
- Java—重寫與過載的區別Java
- JAVA基礎之三-介面和抽象類Java抽象
- 【c#】重寫和過載C#
- java基礎的學習Java
- Java基礎學習之陣列基本屬性和方法Java陣列
- Shell程式設計基礎學習之三:變數和test程式設計變數
- Java基礎03 構造器與方法過載Java
- java中過載與重寫的區別Java
- 零基礎全方位學習java的方法Java
- 面試官:Java的重寫和過載有什麼區別?面試Java
- Java基礎學習Java
- JAVA學習--JAVA基礎(一)Java
- Object C學習筆記23-繼承,重寫,過載Object筆記繼承
- java基礎學習:JavaWeb之Cookie和SessionJavaWebCookieSession
- java基礎學習:JavaWeb之request和responseJavaWeb
- java基礎學習之一:物件和類Java物件
- Java 重寫(Override)與過載(Overload)JavaIDE
- Java 重寫和過載區別——物件導向的多型性分析Java物件多型
- 複習java面對物件(方法重寫)Java物件
- 零基礎快速學習Java技術的方法整理Java
- java之方法的重寫Java
- 【Java 反射學習】Java 反射基礎Java反射
- [Java 反射學習] Java 反射基礎Java反射
- Java-override重寫與overload過載JavaIDE
- java基礎學習(目錄)Java
- Java基礎 快速學習(二)Java
- Java基礎 快速學習(三)Java
- Java基礎 快速學習(四)Java
- java語言基礎學習Java
- java基礎學習之--XMLJavaXML
- Java基礎學習筆記Java筆記
- java 方法重寫概念Java