由于不同的類在實(shí)現(xiàn)同一個(gè)接口時(shí)可能具有不同的實(shí)現(xiàn)方式,所以接口變量在回調(diào)接口方法時(shí)就可能具有多種形態(tài)。
接口多態(tài)定義的格式:
接口 變量名 = new 接口實(shí)現(xiàn)類();
例如:A類和B類都實(shí)現(xiàn)了ComputerAverage接口,但實(shí)現(xiàn)的方式不同。
interface ComputerAverage { public double average(double a,double b); } class A implements ComputerAverage { public double average(double a,double b) { double aver = 0; aver = (a+b)/2; return aver; } } class B implements ComputerAverage { public double average(double a,double b) { double aver = 0; aver = Math.sqrt(a*b); return aver; } } public class Main { public static void main(String args[]) { ComputerAverage computer; double a = 10,b = 40; computer = new A(); double result = computer.average(a,b); System.out.printf("%5.2f和%5.2f的算術(shù)平均值:%5.2f\n",a,b,result); computer = new B(); result = computer.average(a,b); System.out.printf("%5.2f和%5.2f的幾何平均值:%5.2f",a,b,result); } }
運(yùn)行結(jié)果如下:
10.00和40.00的算術(shù)平均值:25.00 10.00和40.00的幾何平均值:20.00
C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程
解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程
從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程
只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程