繼承可以使用父類(lèi)的所有方法,但是如果繼承的是抽象類(lèi)的話,需要復(fù)寫(xiě)抽象類(lèi)中所有的抽象方法,繼承在需要用到父類(lèi)方法且需要有自身特有方法的情況下使用,比如,有一個(gè)類(lèi)Person,里面有個(gè)有個(gè)方法getName,現(xiàn)在又有個(gè)Student類(lèi),需要用到getName和getCourse方法,如果不繼承,就需要再寫(xiě)一個(gè)方法getName,如果繼承Person,就可以直接使用getName方法,再寫(xiě)一個(gè)getCourse即可,代碼如下
class Person
{
String name;
Person(String name)
{
this.name = name;
}
String getName()
{
return name;
}
}
class Student extends Person
{
String name;
String course;
Person(String name,String course)
{
super(name);
this.name = name;
}
String getName()
{
return name;
}
String getCourse()
{
return course();
}
}而繼承抽象類(lèi)是為了使子類(lèi)必須使用父類(lèi)的方法
還是上面那個(gè)例子,Person類(lèi)有個(gè)抽象方法name;好比每個(gè)人必須有名字,那么繼承他的子類(lèi)必須復(fù)寫(xiě)name方法
重寫(xiě)方法的規(guī)則:
1、參數(shù)列表必須完全與被重寫(xiě)的方法相同,否則不能稱(chēng)其為重寫(xiě)而是重載。
2、返回的類(lèi)型必須一直與被重寫(xiě)的方法的返回類(lèi)型相同,否則不能稱(chēng)其為重寫(xiě)而是重載。
3、訪問(wèn)修飾符的限制一定要大于被重寫(xiě)方法的訪問(wèn)修飾符(public>protected>default>private)
4、重寫(xiě)方法一定不能拋出新的檢查異?;蛘弑缺恢貙?xiě)方法申明更加寬泛的檢查型異常。例如:
父類(lèi)的一個(gè)方法申明了一個(gè)檢查異常IOException,在重寫(xiě)這個(gè)方法是就不能拋出Exception,只能拋出IOException的子類(lèi)異常,可以拋出非檢查異常。
而重載的規(guī)則:
1、必須具有不同的參數(shù)列表;
2、可以有不責(zé)罵的返回類(lèi)型,只要參數(shù)列表不同就可以了;
3、可以有不同的訪問(wèn)修飾符;
4、可以拋出不同的異常;
重寫(xiě)與重載的區(qū)別在于:
重寫(xiě)多態(tài)性起作用,對(duì)調(diào)用被重載過(guò)的方法可以大大減少代碼的輸入量,同一個(gè)方法名只要往里面?zhèn)鬟f不同的參數(shù)就可以擁有不同的功能或返回值。
用好重寫(xiě)和重載可以設(shè)計(jì)一個(gè)結(jié)構(gòu)清晰而簡(jiǎn)潔的類(lèi),可以說(shuō)重寫(xiě)和重載在編寫(xiě)代碼過(guò)程中的作用非同一般.
public class A {
private int i;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
public class B extends A {
public static void main(String args[]){
B b = new B();
b.setI(3);
System.out.println(b.getI());
}
}
子類(lèi)中就是繼承父類(lèi)里的變量和方法(注意:是不是真的能繼承,還看父類(lèi)變量和方法的訪問(wèn)修飾符是什么,例如private修飾的變量和方法就不能繼承)
父類(lèi)的構(gòu)造凼數(shù)沒(méi)有被繼承,這里所說(shuō)的意思是指在實(shí)例化子類(lèi)的對(duì)象時(shí),在new后面不能調(diào)用父類(lèi)的構(gòu)造凼數(shù),但是可以在子類(lèi)的構(gòu)造凼數(shù)里使用super來(lái)調(diào)用父類(lèi)的構(gòu)造凼數(shù),如果沒(méi)有寫(xiě)super這句調(diào)用,子類(lèi)會(huì)自動(dòng)調(diào)用父類(lèi)無(wú)參的構(gòu)造凼數(shù)
可以new一個(gè)子類(lèi)的對(duì)象賦給一個(gè)父類(lèi)的變量,當(dāng)通過(guò)這個(gè)父類(lèi)的變量執(zhí)行方法時(shí),其實(shí)是執(zhí)行的子類(lèi)的方法
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:2.842秒