目錄
多態(tài)概述
Java 多態(tài)包括以下三種方式
方法重寫(Override)
向上轉(zhuǎn)型(Upcasting)
實現(xiàn)多態(tài)
多態(tài)概述
Java 多態(tài)是指同一種類型的對象,在不同的情況下有著不同的狀態(tài)和行為。它是基于繼承、重寫和向上轉(zhuǎn)型等特性實現(xiàn)的,多態(tài)是面向?qū)ο缶幊痰娜筇卣髦?,其他兩個分別是封裝和繼承。
Java 多態(tài)包括以下三種方式
方法重寫(Override)
子類可以對從父類繼承的方法進(jìn)行重寫,以便根據(jù)子類的需要來覆蓋掉父類中的方法實現(xiàn)。這樣在調(diào)用時,可以根據(jù)對象的不同來執(zhí)行對應(yīng)的方法。
例如:文章來源地址http://www.zghlxwxcb.cn/news/detail-411970.html
class Animal {
? ? public void move() {
? ? ? ? System.out.println("動物移動");
? ? }
}
class Cat extends Animal {
? ? @Override
? ? public void move() {
? ? ? ? System.out.println("貓在走路");
? ? }
}
public class Test {
? ? public static void main(String[] args) {
? ? ? ? Animal animal = new Animal();
? ? ? ? Animal cat = new Cat();
? ? ? ? animal.move();
? ? ? ? cat.move();
? ? }
}
向上轉(zhuǎn)型(Upcasting)
將子類對象轉(zhuǎn)換成父類引用,這樣就可以使用父類中定義的方法和屬性,但不能訪問子類獨有的方法和屬性。這種特征使得可以將子類對象作為父類的參數(shù)進(jìn)行傳遞,提高代碼的靈活性。
例如:
class Animal {
public void move() {
System.out.println("動物移動");
}
}
class Cat extends Animal {
@Override
public void move() {
System.out.println("貓在走路");
}
public void catchMouse() {
System.out.println("貓在抓老鼠");
}
}
public class Test {
public static void main(String[] args) {
Animal animal = new Cat();
animal.move(); // 調(diào)用子類中的方法
//animal.catchMouse(); // 編譯錯誤,不能訪問子類獨有的方法
}
}
實現(xiàn)多態(tài)
通過父類引用指向子類對象,可以實現(xiàn)多態(tài)性,使得同一個方法調(diào)用可以在不同的對象上具有不同的行為。這種特征使得程序更加靈活,可以根據(jù)需要來確定對象的類型。文章來源:http://www.zghlxwxcb.cn/news/detail-411970.html
例如:
class Animal {
public void move() {
System.out.println("動物移動");
}
}
class Cat extends Animal {
@Override
public void move() {
System.out.println("貓在走路");
}
}
class Dog extends Animal {
@Override
public void move() {
System.out.println("狗在跑步");
}
}
public class Test {
public static void main(String[] args) {
Animal animal1 = new Cat();
Animal animal2 = new Dog();
animal1.move(); // 同一種方法調(diào)用不同的對象
animal2.move(); // 同一種方法調(diào)用不同的對象
}
}
到了這里,關(guān)于Java面向?qū)ο蠖鄳B(tài)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!