多態(tài)

2019-06-26 19:01 更新

多態(tài) 定義:

多態(tài)是同一個(gè)行為具有多個(gè)不同表現(xiàn)形式或形態(tài)的能力。

理解方法: 以Animal、Dog、Cat類為例,它們都有eat方法,如果使用以下代碼:

Animal animal = new Dog();
animal.eat();
animal = new Cat();
animal.eat();
java執(zhí)行流程:
java會(huì)先看Animal中是否有eat方法的定義:{
    如果沒(méi)有則會(huì)報(bào)錯(cuò);
    如果有則java會(huì)再看實(shí)例化對(duì)象的類中是否有eat方法的實(shí)現(xiàn){
        如果沒(méi)有則java會(huì)看Animal中是否有eat方法的實(shí)現(xiàn){
            如果沒(méi)有則會(huì)報(bào)錯(cuò);
            如果有則會(huì)調(diào)用;
        }
        如果有則會(huì)調(diào)用實(shí)例化對(duì)象的類中的eat方法。
    }
}

以下為Animal為類、抽象類、接口時(shí)的代碼示例: 1.Animal為類時(shí)代碼示例:

class Animal{
    public void eat() {
        System.out.println("Animal吃東西。");
    }
}
class Dog extends Animal{
    public void eat() {
        System.out.println("Dog吃東西。");
    }
}
class Cat extends Animal{
    public void eat() {
        System.out.println("Cat吃東西。");
    }
}

2.Animal為抽象類時(shí)代碼示例:

abstract class Animal{
    public abstract void eat();
}
class Dog extends Animal{
    public void eat() {
        System.out.println("Dog吃東西。");
    }
}
class Cat extends Animal{
    public void eat() {
        System.out.println("Cat吃東西。");
    }
}

3.Animal為接口時(shí)代碼示例:

interface Animal{
    public void eat();
}
class Dog implements Animal{
    public void eat() {
        System.out.println("Dog吃東西。");
    }
}
class Cat implements Animal{
    public void eat() {
        System.out.println("Cat吃東西。");
    }
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)