多態的定義:指允許不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而採用多種不同的行爲方式。(發送消息就是函數調用)
多態的實現要求:
1.要有繼承
2.要有重寫
3.父類引用指向子類對象
java兩種實現多態的方式:繼承和接口
代碼演示:
interface Fly{
void fly();
}//定義一個接口,接口方式實現多態
abstract class Animal2{
abstract void run();
public void sleep(){
System.out.println("睡覺");
}
}//定義一個抽象類,繼承方式實現多態
class Dog1 extends Animal2 implements Fly{
public void fly(){
System.out.println("dog不能飛");
}
public void run(){
System.out.println("dog能跑");
}
}
public class PolymorphismTest{
public static void main(){
Fly one=new Dog1();
Animal2 one2=new Dog1();
one.fly();
one2.run();
one2.sleep();
}
}
多態的實質:
多方法進行重寫,從而實現不同類的對象對同一對象做出響應
作用:消除類型之間的耦合關係
代碼演示:
interface Fly{
void fly();
}
class DogTest implements Fly{
public void fly(){
System.out.println("dog不能飛");
}
}
class CatTest implements Fly{
public void fly(){
System.out.println("Cat也不能飛");
}
}
public class Polymorphism{
public static void main(String[] args){
Fly one=new DogTest();
Fly two=new CatTest();
one.fly();
two.fly();
}
}