Java继承和多态实现例子
生活随笔
收集整理的這篇文章主要介紹了
Java继承和多态实现例子
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
繼承,多態(tài)的簡(jiǎn)單例子
我們想做一個(gè)類用于存放CD,DVD等光碟,要應(yīng)用多態(tài)和繼承,去除重復(fù)性代碼,便于以后維護(hù)(添加新的格式光碟,如:MP3,MP4),因此我們首先創(chuàng)建一個(gè)工程demo,創(chuàng)建database類用于存放光碟數(shù)據(jù),創(chuàng)建光碟類ltem,創(chuàng)建CD類,創(chuàng)建DVD類,CD和DVD共同繼承l(wèi)tem的屬性和方法(CD、DVD都是光碟),減少重復(fù)的屬性編寫(xiě),也便于database類的Listltem容器維護(hù)(只需維護(hù)光碟類即可)。
通過(guò)這個(gè)例子我們更好的熟悉Java中的繼承和多態(tài)特性。
創(chuàng)建database類
package demo;import java.util.ArrayList;public class database {ArrayList<ltem> listltem=new ArrayList<ltem>();//創(chuàng)建ArrayList容器,存儲(chǔ)類型為ltempublic void add(ltem item) {//add方法,傳入ltem類型,listltem.add(item);//添加進(jìn)入listltem容器中}public void list() {//list方法 負(fù)責(zé)遍歷容器中所有數(shù)據(jù)for(ltem item:listltem) {item.print();}}public static void main(String[] args) {database data=new database();//創(chuàng)建database對(duì)象data.add(new CD("起風(fēng)了",3,false,"買辣椒也用券"));//添加ltem類型對(duì)象,添加ltem子類對(duì)象CD(匿名對(duì)象),CD構(gòu)造器初始化,多態(tài)data.add(new CD("流量", 3, false,"半陽(yáng)"));data.add(new DVD("一出好戲", 125, false,"黃渤"));data.list();}}創(chuàng)建ltem類
package demo;public class ltem {private String title;//標(biāo)題private int playtime;//播放時(shí)間private boolean borrow;//是佛外借 public ltem(String title, int playtime, boolean borrow) {//構(gòu)造函數(shù)初始化變量this.title = title;this.playtime = playtime;this.borrow = borrow;}public void print() {//print方法 輸出數(shù)據(jù)System.out.print("標(biāo)題:"+title+" 時(shí)間:"+playtime);}}創(chuàng)建CD類
package demo;public class CD extends ltem{//子類CD繼承父類ltemprivate String artist;//藝術(shù)家public CD(String title, int playtime, boolean borrow,String artist) {//構(gòu)造函數(shù)初始化super(title, playtime, borrow);//super關(guān)鍵字必須放在第一行,調(diào)用父類的構(gòu)造函數(shù),將標(biāo)題,播放時(shí)間,是否外借傳入this.artist=artist;}public void print() {//print方法重寫(xiě)父類的print System.out.print("CD ");super.print();//super調(diào)用父類的print方法System.out.print(" 藝術(shù)家:"+artist);//輸出子類獨(dú)有的屬性System.out.println();}}創(chuàng)建DVD類
package demo;public class DVD extends ltem{//子類DVD繼承父類ltemprivate String director;//導(dǎo)演public DVD(String title, int playtime, boolean borrow,String director) {//構(gòu)造函數(shù)初始化super(title, playtime, borrow);//super關(guān)鍵字必須放在第一行,調(diào)用父類的構(gòu)造函數(shù),將標(biāo)題,播放時(shí)間,是否外借傳入this.director=director;}public void print() {//print方法重寫(xiě)父類的print System.out.print("DVD ");super.print();//super調(diào)用父類的print方法System.out.print(" 導(dǎo)演:"+director);//輸出子類獨(dú)有的屬性System.out.println();}}運(yùn)行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的Java继承和多态实现例子的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端roadmap
- 下一篇: [转帖]AjaxControlToolk