您現(xiàn)在的位置是:首頁 >綜合 > 2024-03-21 22:06:25 來源:
java多態(tài)包括(java多態(tài)的概念)
大家好,我是小夏,我來為大家解答以上問題。java多態(tài)包括,java多態(tài)的概念很多人還不知道,現(xiàn)在讓我們一起來看看吧!
class Wine {
public void fun1(){
System.out.println("Wine 的Fun.....");
fun2();
}
public void fun2(){
System.out.println("Wine 的Fun2...");
}
}
class JNC extends Wine{
/**
* @desc 子類重載父類方法
* ? ? ? ?父類中不存在該方法,向上轉(zhuǎn)型后,父類是不62616964757a686964616fe58685e5aeb931333365633839能引用該方法的
* @param a
* @return void
*/
public void fun1(String a){
System.out.println("JNC 的 Fun1...");
fun2();
}
/**
* 子類重寫父類方法
* 指向子類的父類引用調(diào)用fun2時(shí),必定是調(diào)用該方法
*/
public void fun2(){
System.out.println("JNC 的Fun2...");
}
}
public class test24 {
public static void main(String[] args) {
Wine a = new JNC();
a.fun1();
}
}
分析:在這個(gè)程序中子類JNC重載了父類Wine的方法fun1(),重寫fun2(),而且重載后的fun1(String a)與 fun1()不是同一個(gè)方法,由于父類中沒有該方法,向上轉(zhuǎn)型后會(huì)丟失該方法,所以執(zhí)行JNC的Wine類型引用是不能引用fun1(String a)方法。而子類JNC重寫了fun2() ,那么指向JNC的Wine引用會(huì)調(diào)用JNC中fun2()方法。
所以對(duì)于多態(tài)我們可以總結(jié)如下:
指向子類的父類引用由于向上轉(zhuǎn)型了,它只能訪問父類中擁有的方法和屬性,而對(duì)于子類中存在而父類中不存在的方法,該引用是不能使用的,盡管是重載該方法。若子類重寫了父類中的某些方法,在調(diào)用該些方法的時(shí)候,必定是使用子類中定義的這些方法(動(dòng)態(tài)連接、動(dòng)態(tài)調(diào)用)。
本文到此講解完畢了,希望對(duì)大家有幫助。