繼承可以使用父類的所有方法,但是如果繼承的是抽象類的話,需要復(fù)寫抽象類中所有的抽象方法,繼承在需要用到父類方法且需要有自身特有方法的情況下使用,比如,有一個(gè)類Person,里面有個(gè)有個(gè)方法getName,現(xiàn)在又有個(gè)Student類,需要用到getName和getCourse方法,如果不繼承,就需要再寫一個(gè)方法getName,如果繼承Person,就可以直接使用getName方法,再寫一個(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();
}
}而繼承抽象類是為了使子類必須使用父類的方法
還是上面那個(gè)例子,Person類有個(gè)抽象方法name;好比每個(gè)人必須有名字,那么繼承他的子類必須復(fù)寫name方法
重寫方法的規(guī)則:
1、參數(shù)列表必須完全與被重寫的方法相同,否則不能稱其為重寫而是重載。
2、返回的類型必須一直與被重寫的方法的返回類型相同,否則不能稱其為重寫而是重載。
3、訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private)
4、重寫方法一定不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常。例如:
父類的一個(gè)方法申明了一個(gè)檢查異常IOException,在重寫這個(gè)方法是就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常。
而重載的規(guī)則:
1、必須具有不同的參數(shù)列表;
2、可以有不責(zé)罵的返回類型,只要參數(shù)列表不同就可以了;
3、可以有不同的訪問修飾符;
4、可以拋出不同的異常;
重寫與重載的區(qū)別在于:
重寫多態(tài)性起作用,對(duì)調(diào)用被重載過的方法可以大大減少代碼的輸入量,同一個(gè)方法名只要往里面?zhèn)鬟f不同的參數(shù)就可以擁有不同的功能或返回值。
用好重寫和重載可以設(shè)計(jì)一個(gè)結(jié)構(gòu)清晰而簡(jiǎn)潔的類,可以說重寫和重載在編寫代碼過程中的作用非同一般.
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());
}
}
子類中就是繼承父類里的變量和方法(注意:是不是真的能繼承,還看父類變量和方法的訪問修飾符是什么,例如private修飾的變量和方法就不能繼承)
父類的構(gòu)造凼數(shù)沒有被繼承,這里所說的意思是指在實(shí)例化子類的對(duì)象時(shí),在new后面不能調(diào)用父類的構(gòu)造凼數(shù),但是可以在子類的構(gòu)造凼數(shù)里使用super來調(diào)用父類的構(gòu)造凼數(shù),如果沒有寫super這句調(diào)用,子類會(huì)自動(dòng)調(diào)用父類無參的構(gòu)造凼數(shù)
可以new一個(gè)子類的對(duì)象賦給一個(gè)父類的變量,當(dāng)通過這個(gè)父類的變量執(zhí)行方法時(shí),其實(shí)是執(zhí)行的子類的方法
聲明:本網(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í)鳥. 頁面生成時(shí)間:2.842秒