生活随笔
收集整理的這篇文章主要介紹了
java有关继承与多态的初学者操作实验题------初学者学习多态专用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 1、Animal類
- 2、Vehicle類
- 3、USB模擬器
- 4、總結
前言
多態在java中有很多種體現方式,不是一句話就可以概括的,要根據多種題目和方法才能體現多態在java中的形象,所以本文記載了有關JAVA的繼承與多態的幾個適合初學者的實驗題、分析和代碼,讓大家通過對題目的操作對繼承和多態有一個很好的認知。
1、Animal類
題目:創建Animal(動物)類:Mouse,Cat等的一個繼承分級結構.在父類中提供適用于所有Animal的方法,并在子類中覆蓋他們,從而根據不同類型的Animal采取不同的行動Anima類有如下方法:public void speak()。
分析:如題,Animal類中可以定義動物共有的動作,如吃東西,叫,跑,跳一類的是動物都會的,但是不同動物類實現起來,又各不相同,如貓是喵喵叫,而老鼠是吱吱叫,所以這些共有的動作應該在Animal這個父類中定義為抽象類,而實現起來就有其不同的子類如老鼠,貓這些子類來實現,這就形成了一種多態;所以類似這種的問題都可以定義一個抽象的父類,由多個子類來實現。最最重要的抽象類跟接口不能被實例化。而且抽象類中可以有0~n個抽象方法以及0-n個具體方法。
代碼:
import java.util.Scanner;abstract class Animal{public abstract void Speak();}
class Mouse extends Animal{String name
;public Mouse(String name
){this.name
=name
;}@Overridepublic void Speak() {System.out
.println(name
+"的叫聲吱吱");}
}
class Cat extends Animal{String name
;public Cat(String name
){this.name
=name
;}@Overridepublic void Speak() {System.out
.println(name
+"的叫聲喵喵");}
}public class ch01
{public static void main(String[] args
){String name1
,name2
;Scanner in
=new Scanner(System.in
);name1
=in
.next();name2
=in
.next();Mouse mouse
=new Mouse(name1
);Cat cat
=new Cat(name2
);mouse.Speak();cat.Speak();}}
2、Vehicle類
題目:編寫一個制造各種車輛的程序。包含三個類,具體要求如下:
(1)基類Vehicle,包含輪子數和汽車自身重量兩個屬性,一個兩參數的構造方法,一個顯示汽車信息的方法;
(2)小轎車類Car,增加載客數屬性,重寫構造方法和顯示車輛信息的成員方法;
(3)卡車類Truck,增加載客數和載貨量屬性,重寫構造方法和顯示車輛信息的成員方法;
(4)主程序類,要求輸入各種車輛的信息,并在控制臺輸出各種車輛信息。
分析:Car 類 和Truck類都繼承了Vehicle類并且重寫了父類的構造方法和有了自己的獨特屬性,這就是多態的一種體現。看官還是要根據代碼來理解其中的奧妙:
import java.util.Scanner;
class vehicle
{int wheel
;double weight
;public vehicle(int wheel
,double weight
){this.wheel
=wheel
;this.weight
=weight
;}public void infoVehicle(){System.out
.println("輪子數:"+wheel
);System.out
.println("自身重量:"+weight
);}
}
class Car extends vehicle
{int carry
;public Car(int wheel
,double weight
,int carry
){ super(wheel
,weight
);this.carry
=carry
;}@Overridepublic void infoVehicle() {System.out
.println("小轎車:");super.infoVehicle();System.out
.println("載客人數:"+carry
);}
}
class Truck extends vehicle
{int carry
,cargo
;public Truck(int wheel
,double weight
,int carry
,int cargo
){super(wheel
,weight
);this.carry
=carry
;this.cargo
=cargo
;}@Overridepublic void infoVehicle() {System.out
.println("卡車:");super.infoVehicle();System.out
.println("載客人數:"+carry
);System.out
.println("載貨重量:"+cargo
);}
}public class ch01
{public static void main(String[] args
){Scanner in
=new Scanner(System.in
);vehicle veh
=new vehicle(in
.nextInt(),in
.nextDouble());Car car
=new Car(in
.nextInt(),in
.nextDouble(),in
.nextInt());Truck truck
=new Truck(in
.nextInt(),in
.nextDouble(),in
.nextInt(),in
.nextInt());veh
.infoVehicle();car
.infoVehicle();truck
.infoVehicle();}}
3、USB模擬器
題目:編寫一個USB接口程序,模擬計算機啟動過程和關閉過程啟動過程中要加載鼠標、鍵盤、麥克風等USB設備,具體
要求如下:
(1)定義一個接口USB,包含兩個抽象方法turnOn()he turnOff(),分別用于表示USB設備的啟動和關閉
(2)編寫鼠標Mouse、鍵盤KeyBoard、麥克風Mic類,實現接口中的turnOn()、turnOff()方法,方法中顯示“XX設備
啟動了”或“XX設備關閉了”即可
(3)編寫計算機類Computer,要求有一個表示計算機上USB插槽數量的數組;添加USB設備的方法add(USB
usb),功能為遍歷所有插槽,如果有空閑的就添加一個USB設備
模擬開機啟動USB設備的powerOn()方法,功能為遍歷所有USB接口,如果連接了USB設備,則啟動USB設備,
然后顯示“計算機開機成功”
模擬關機關閉USB設備的powerOff()方法,功能為遍歷所有USB接口,如果連接了USB設備,則關閉USB設備,
然后顯示“計算機關機成功”
(4)編寫測試類,要求建立計算機對象,建立鼠標、鍵盤、麥克風對象,并添加到計算機中,啟動計算機,關閉計算機
分析:這個題目涉及了對接口的定義以及實現,這是對接口的基礎了解與應用,多個類可以實現同一個接口,但是實現的內容不一樣,就像下面代碼,同樣實現USB接口,但是鼠標與鍵盤類實現出來執行的語句就不一樣,這個題目可以讓初學者初步了解與應用接口,對接口有一個比較深刻的印象。
看官還是根據代碼來體會接口的奇妙之處:
import java.text.DecimalFormat;
import java.util.Scanner;
interface USB
{void turnOn();void turnOff();
}
class Mouse implements USB
{@Overridepublic void turnOn() {System.out
.println("鼠標啟動了");}@Overridepublic void turnOff() {System.out
.println("鼠標關閉了");}
}
class Mic implements USB
{@Overridepublic void turnOn() {System.out
.println("麥克風啟動了");}@Overridepublic void turnOff() {System.out
.println("麥克風關閉了");}}
class Keyboard implements USB
{@Overridepublic void turnOn() {System.out
.println("鍵盤啟動了");}@Overridepublic void turnOff() {System.out
.println("鍵盤關閉了");}
}
class Computer{USB
[] n
=new USB
[3];void add(USB usb
){for (int i
=0;i
<3;i
++)if (n
[i
]==null){n
[i
]=usb
;break;}}void powerOn(){for (int i
=0;i
<3;i
++)if (n
[i
]!=null)n
[i
].turnOn();System.out
.println("計算機開機成功");}void powerOff(){for (int i
=0;i
<3;i
++)if (n
[i
]!=null)n
[i
].turnOff();System.out
.println("計算機關機成功");}}
public class ch01
{public static void main(String[] args
){Computer computer
=new Computer();USB mouse
=new Mouse();USB keyboard
=new Keyboard();USB mic
=new Mic();computer
.add(mouse
);computer
.add(keyboard
);computer
.add(mic
);computer
.powerOn();computer
.powerOff();}}
4、總結
Animal類中實現了子類繼承父類并實現父類中抽象類的操作,這些操作是非常簡單的,一看就會;Vehicle類實現了子類繼承父類并重寫父類方法還延伸出自己獨特屬性的操作,這些個操作體現了繼承與多態,但是只要掌握好基礎知識,操作起來也是非常簡單的;USB模擬器它實現了接口的多種操作,雖然看起來麻煩但是理解了接口的知識的話,也就是那么回事,小菜一碟。總之,以上三道題都是初學者接觸繼承與多態的簡單問題,雖然簡單,但是這些個問題可以有效的幫助各位理解繼承與多態,也希望各位在這里有稍許收獲。
總結
以上是生活随笔為你收集整理的java有关继承与多态的初学者操作实验题------初学者学习多态专用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。