日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java面向对象(4) ——多态

發布時間:2023/12/10 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java面向对象(4) ——多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 多態的概念
  • 對象上下轉型
  • 多態應用之打印機

多態的概念

多態是指同一個操作作用于某一類對象,可以有不同的解釋,產生不同的執行結果。比如:貓吃魚、狗吃肉、人吃米飯。

多態存在的三個必要條件:

  • 需要存在繼承(extends)或實現(接口)關系
  • 同樣的方法調用而執行不同操作、運行不用代碼(重寫)
  • 在運行時父類或者接口的引用變量可以引用其子類的對象

多態的作用:

  • 多態通過分類做什么(eat)和怎么做(貓和狗eat不一樣),從一個角度將接口和實現進行分離
  • 多態消除了類型之間的耦合關系
  • 多態的存在提高了程序的拓展性和后期的可維護性

例子:(直接點擊運行提示缺少cat類,右擊run as運行成功 why?)

//或者:abstract class Animal class Animal {String name;public void eat();//或者:abstract public void eat(); }class Dog extends Animal {public void eat(){//區分重寫和重載System.out.println("狗啃骨頭");}}class Cat extends Animal {public void eat(){System.out.println("貓吃魚");} }public class Test {public static void main(String[] args){Animal an1 = new Dog();//在運行時父類或者接口的引用變量可以引用其子類的對象Animal an2 = new Cat();//屬于下面講的向上轉型 子類向父類轉 an1.eat();an2.eat();} }

對象上下轉型

  • 由子類轉型成父類,在繼承圖上是向上移動的,一般稱為向上轉型

  • 向上轉型是從一個較專用類型向通用類型轉換,所以總是安全的,也就是說,子類是父類的超集

  • 向上轉型過程中,類接口中唯一可能發生的事情是丟失方法,而不是獲取方法

  • 與之相反的操作是向下轉型,不安全(可能需要instanceof操作符協助)

例子:

//或者:abstract class Animal class Animal {String name;public void eat();//或者:abstract public void eat(); }class Dog extends Animal {public void eat(){//區分重寫和重載System.out.println("狗啃骨頭");}}class Cat extends Animal {public void eat(){System.out.println("貓吃魚");}public void sleep(){System.out.println("貓睡覺");} }public class Test {public static void main(String[] args){Animal an1 = new Dog();Animal an2 = new Cat();an1.eat();//an2.sleep(); 向上轉型丟失方法Cat cat1 = new Cat();//這樣就不會丟失方法cat1.sleep();if(an1 instanceof Cat){ //instanceof通過返回值(布爾值)指出對象是否是特定類或是它的一個子類System.out.println("aa");}if(an2 instanceof Cat){System.out.println("bb");Cat cat2 = (Cat)an2;//類型強轉,類似C語言cat2.eat();}} }

運行結果:

狗啃骨頭 貓睡覺 bb 貓吃魚

多態應用之打印機

總結

以上是生活随笔為你收集整理的Java面向对象(4) ——多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。