多態(tài)的實現方式有哪些?
創(chuàng)新互聯(lián)建站網站建設公司是一家服務多年做網站建設策劃設計制作的公司,為廣大用戶提供了成都做網站、網站建設、外貿營銷網站建設,成都網站設計,一元廣告,成都做網站選創(chuàng)新互聯(lián)建站,貼合企業(yè)需求,高性價比,滿足客戶不同層次的需求一站式服務歡迎致電。第一種實現方式:基于繼承實現的多態(tài)
基于繼承的實現機制主要表現在父類和繼承該父類的一個或多個子類對某些方法的重寫,多個子類對同一方法的重寫可以表現出不同的行為。多態(tài)的表現就是不同的對象可以執(zhí)行相同的行為,但是他們都需要通過自己的實現方式來執(zhí)行,這就要得益于向上轉型了。
public class MainJava {
public static void main(String[] args) {
//定義父類數組
wine[] wines = new Wine[2];
//定義兩個子類
Test1 test1 = new Test1();
Test2 test2 = new Test2();
wine win e = new Wine();
//父類引用子類對象
wines[0] = test1;
wines[1] = test2;
for(int i = 0 ; i < 2 ; i++){
System.out.println(wines[i].toString() + "--" + wines[i].drink());
}
System.out.println("-------------------------------");
System.out.println(test1.toString() + "--" + test1.drink());
System.out.println(test2.toString() + "--" + test2.drink());
}
public static class Wine {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String drink(){
return "喝的是 " + getName();
}
public String toString(){
return null;
}
}
public static class Test1 extends Wine{
public Test1(){
setName("Test1");
}
public String drink(){
return "喝的是 " + getName();
}
public String toString(){
return "Wine : " + getName();
}
}
public static class Test2 extends Wine{
public Test2(){
setName("Test2");
}
public String drink(){
return "喝的是 " + getName();
}
public String toString(){
return "Wine : " + getName();
}
}
}
抽象類和普通類有何區(qū)別
抽象類和普通類大的區(qū)別是,抽象類不能被實例化,需要繼承抽象類才能實例化其子類。
public abstract class AbstractClassExample {
protected int x;
private int y;
public abstract void func1();
public void func2() {
System.out.println("func2");
}
}
public class AbstractExtendClassExample extends AbstractClassExample {@Override
br/>@Override
System.out.println("func1");
}
}
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。