JAVA—OOP之多型
JAVA—OOP之多型
水,汽,冰就是一個物體在不同條件下的不同種狀態
1、什麼是多型?
A:生活中的多型
就好比在學校沒老師上自習課一樣,此時每種人都有不同的狀態,有的認真做作業,有的玩手機,有的講小話,有的睡覺。當聽到老師來了的這個訊息的時候,每個人都會有不同的反應,有的無所謂,有的嚇尿了,有的嚇屎了等等等。
B:程式中的多型
同一個引用型別,使用不同的例項而執行不同操作。JAVA通過方法”過載”和方法”重寫”來實現多型的。
2、多型的簡單例項
A:定義一個動物介面,和一個吃東西的方法
public interface Ianimal {
void eat();
}
B:定義一個動物抽象類,實現動物介面
public abstract class Animal implements Ianimal{
}
C:定義一個貓類,繼承動物抽象類,並重寫吃東西的方法
public class Cat extends Animal {
//方法重寫的體現
@Override
public void eat() {
System.out.println("我是貓,我吃魚...");
}
}
D:定義一個狗了,繼承動物抽象類,並重寫吃東西的方法
public class Dog extends Animal {
//方法重寫的體現
@Override
public void eat() {
System.out.println("我是狗,我吃骨頭
}
}
E:測試類
public class Test {
public static void main(String[] args) {
//向上轉型:父類的引用指向子類的例項
Ianimal cat = new Cat();
Test.display(cat);
Ianimal dog = new Dog();
Test.display(dog);
}
//方法過載的體現
public static void display(Ianimal animal){
animal.eat();
}
}
F:測試結果
3、多型的好處
從上面的例子就能看出:如果不採用多型要實現同樣的結果的,在呼叫
A:可替換性(substitutability)
B:可擴充性(extensibility)
C:介面性(interface-ability)
D:靈活性(flexibility)
E:簡化性(simplicity)
4、使用多型的必要條件
A:有繼承關係
B:向上轉型
C:必須有重寫
5、多型的標誌
A:方法引數為藉口或父類
B:返回值為父類