多態

多態:同一事件發生在不同對象身上的效果.? 父類引用指向子類對象

例如:

package listen;

public class test1 {

//同一事件發生在不同對象身上產生的結果

public static void main(String[] args) {

//創建貓狗對象

Animal d = new Dog();

d.name = "大黃";

d.eat(d);

//多態實現前提:繼承,重寫,父類引用指向子類對象

if(d instanceof Dog){

System.out.println("這是一個狗狗對象");

Dog g = (Dog)d;

g.lookHome(g);

}else{

System.out.println("這是對象不是狗狗對象");

}

}

}

abstract class Animal{

public String name;

public abstract void eat(Animal a);

}

class Dog extends Animal{

@Override

public void eat(Animal a) {

// TODO Auto-generated method stub

System.out.println("我說一只狗,我叫"+this.name+"我愛吃骨頭");

}

public void lookHome(Dog g){

System.out.println("我正在看家");

}

}

class Cat extends Animal{

@Override

public void eat(Animal a) {

System.out.println("我是一只小貓,我叫"+this.name+"我愛吃魚");

}

}


多態:1.必須有繼承? 2.父類引用指向子類對象\

強制轉換類型:Animal a = new Cat();

interfaceof判斷a的真實類型是不是Cat? Cat c = (Cat)a;???? 判斷一個對象真實類型

if (a instanceof Cat) {

System.out.println("貓類");

Cat c = (Cat)a;//強制類型轉換

c.sleep();

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 多態就是對象的多種形態,即相同的消息使得不同的類做出不同的響應。 多態存在的三個必要條件:繼承、重寫、父類變量引用...
    予別她閱讀 454評論 0 0
  • 第2章 多態2.1 多態概述多態是繼封裝、繼承之后,面向對象的第三大特性。現實事物經常會體現出多種形態,如學生,學...
    葡小萄家的貓閱讀 3,217評論 1 6
  • 一.成員變量與局部變量的區別 成員變量:在類中定義,用來描述對象將要有什么(屬性)。可被本類方法和其他跟當前類有關...
    jeffierw閱讀 559評論 0 0
  • 基本概念 多態是面向對象編程語言的關鍵特征之一。多態是同一個行為具有多個不同表現形式或形態的能力。多態就是同一個接...
    我是老薛閱讀 222評論 0 0
  • 寫在前面的話: 總是在災難發生后,才想起容災的重要性; 總是在吃過虧后,才記得曾經有人提醒過。 核心軍規 1、不在...
    小程故事多閱讀 4,228評論 2 31