真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java之方法重寫、方法重載、多態(tài)

Java之方法重寫、方法重載、多態(tài)
博客分類: java語言
Java重寫重載多態(tài)
一、方法重寫(Override)

目前創(chuàng)新互聯(lián)已為上千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、綏陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

子類可以重寫父類的方法。
方法的返回值類型、參數(shù)類型、參數(shù)個(gè)數(shù)都不能改變,只能重寫方法體。

方法的重寫規(guī)則

  • 參數(shù)列表必須完全與被重寫方法的相同;
  • 返回類型必須完全與被重寫方法的返回類型相同;
  • 訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。
    例如:如果父類的一個(gè)方法被聲明為public,那么在子類中重寫該方法就不能聲明為protected。
    解釋:用于多態(tài)(父類引用子類對(duì)象)。
  • 聲明為final的方法不能被重寫。
  • 構(gòu)造方法不能被重寫。
  • 如果不能繼承一個(gè)方法,則不能重寫這個(gè)方法。
    如:父類中 private 的方法不能被子類重寫。
  • 聲明為static的方法不能被重寫,但是能夠被再次聲明。
  • 子類中重寫的方法不能拋出比父類更廣泛的異常。
    解釋:用于多態(tài)(父類引用子類對(duì)象)。

二、方法重載(Overload)

重載(overloading) 是在一個(gè)類里面,方法名字相同,而參數(shù)不同。
返回類型可以相同也可以不同。

方法的重載規(guī)則
-被重載的方法必須改變參數(shù)列表;

-被重載的方法可以改變返回類型;
-被重載的方法可以改變訪問修飾符;
-被重載的方法可以聲明新的或更廣的檢查異常;

三、多態(tài)(Polymorphism)

Polymorphism : the condition of occurring in several different forms.

  • 父類可以引用不同的子類,這就是多態(tài)。

  • 實(shí)現(xiàn)多態(tài)有三個(gè)必要條件:繼承、重寫、向上轉(zhuǎn)型。

  • 在Java中有兩種形式可以實(shí)現(xiàn)多態(tài):繼承和接口。

注意:

1、父類的引用可以調(diào)用父類中定義的屬性和方法(可能被子類重寫),
但不能引用子類自己定義的屬性和方法。

2、子類的引用指向子類對(duì)象時(shí),可以調(diào)用父類的方法。

例子:

Java代碼 收藏代碼
public class A {
public String show(D obj) {
return ("A and D");
}

public String show(A obj) {  
    return ("A and A");  
}   

}

public class B extends A{
public String show(B obj){
return ("B and B");
}

public String show(A obj){  
    return ("B and A");  
}   

}

public class C extends B{

}

public class D extends B{

}

public class Test {
public static void main(String[] args) {
A a1 = new A();
A a2 = new B();
B b = new B();
C c = new C();
D d = new D();

    System.out.println("1--" + a1.show(b));  
    System.out.println("2--" + a1.show(c));  
    System.out.println("3--" + a1.show(d));  
    System.out.println("4--" + a2.show(b));  
    System.out.println("5--" + a2.show(c));  
    System.out.println("6--" + a2.show(d));  
    System.out.println("7--" + b.show(b));  
    System.out.println("8--" + b.show(c));  
    System.out.println("9--" + b.show(d));        
}  

}

/*

1--A and A
2--A and A
3--A and D
4--B and A
5--B and A
6--A and D
7--B and B
8--B and B
9--A and D

*/

引用:
http://www.cnblogs.com/chenssy/p/3372798.html
http://www.runoob.com/java/java-override-overload.html


分享標(biāo)題:Java之方法重寫、方法重載、多態(tài)
文章URL:http://weahome.cn/article/ggpcii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部