當前位置:首頁 » 編程軟體 » 多態編程題

多態編程題

發布時間: 2022-05-09 13:16:04

A. 一個關於java 的多態題目怎麼編程

你好!很高興為你解答。
借鑒了樓上,認為樓上講得不夠體現,雖然核心代碼編了出來了,但沒能講到多態的點子上。我稍作修改,樓主請看:
運行結果:
********************
汽車在行駛
摩托車在行駛
自行車在行駛
************代碼如下*************

package TestPolymorphism;

/**
*
* @author 葉科良,568145421
*/
public class TestPolymorphism {

public static void main(String[] args) {
TravelTool travelTool = new Car();
travelTool.run();//一樣的語句,不一樣的功能,改動處則少
travelTool = new Moto();
travelTool.run();//一樣的語句,不一樣的功能,改動處則少
travelTool = new Bike();
travelTool.run();//一樣的語句,不一樣的功能,改動處則少
}
}

abstract class TravelTool {

abstract void run() ; //行駛

abstract void stop(); //剎車
}
class Car extends TravelTool {

void run() {
System.out.println("汽車在行駛");
}

void stop() {
System.out.println("汽車在剎車");
}
}

class Moto extends TravelTool {

void run() {
System.out.println("摩托車在行駛");
}

void stop() {
System.out.println("摩托車在剎車");
}
}

class Bike extends TravelTool {

void run() {
System.out.println("自行車在行駛");
}

void stop() {
System.out.println("自行在剎車");
}
}

B. Java關於繼承、多態(介面和包)的編程題

package animal.mammal;
// 狗類
public class Dog extends Mammal{
void speak(){
System.out.println("Woof!");
}
void yaoweiba(){
System.out.println("Tail wagging...");
}
void qitaoshiwu(){
System.out.println("begging for food...");
}
}
// 同理寫貓,馬,豬,其中都必須有方法 void speak() 輸出各不相同,其他方法自定義
public class Cat extends Mammal{
}
public class Horse extends Mammal{
}
public class Pig extends Mammal{
}
// 另外是寵物貓,寵物狗的
package animal.mammal.pet;
public class PetCat extends Cat{
doucle price = 40.00;
String ownername = peter;
void Price(){
System.out.println("PetCat price:" + this.price);
}
void Owner(){
System.out.println("this's " + this.ownername +" petCat");
}
}
// 同理寫寵物狗的,如果需要 get/set 則為 price,ownername 加上該方法
public class PetDog extends Dog{
}

C. java 關於繼承、多態的練習題

菜鳥的嘗試,如果有什麼錯誤和不妥,歡迎指出。

Public class child{

}

Public class error1 extends child(
érror1(){
}

Void testFail(){

}

}

Public class error2 extends child(
érror2(){
}

Void steals(){

}

}

Public class parents{
parents(){

}

Public static void print(child error){
If(error instanceof error1){
Print("談心")
}

If(error instanceof error2){
Print("挨打")
}
}

Public static void main (string[] args){
Parents parent= new parents();

Error errora1 = new error1();

Error errora2 = new error2();

Parent.print(errora1);

Parent.print(errora2);

}

大概就這樣了,純手機敲出來的,很多語法不對,
但是看下思路還是看出來的。

D. C++編程題 關於 繼承和多態 的

首先你的第一個問題,d.vf2();這里涉及到一個c++的原則,子類有父類的同名函數,如果不是虛函數的話,則會「隱藏」父類的函數,不管參數是否一致,都會隱藏!所以你的dd::vf2(int
i)這個函數就把bb::vf2()隱藏了,因此dd就不會繼承這個函數。至於為什麼這么設計,以前貌似看某處b.s的訪談,說為了減小出錯的幾率,以免子類的使用者不小心誤使用了父類的函數。
看起來貌似第二個問題和第一個問題是一樣的,但是結果卻不同,其實你應該去了解下c++的對象模型,你就知道它的運作機理了。
對於虛函數,是動態綁定的,在對象內部有一個虛函數表,表裡面是一個個的函數指針,指向當前對象的各個虛函數真正的代碼,當你代碼執行到調用虛函數那裡的時候,會去這個表裡面查,然後取出函數指針再調用。
如果是非虛函數,則是靜態綁定的,也就是說在編譯的時候就已經確定要調用哪個函數!
不管b::vf2、d::vf2、d::vf3都是非虛函數,都會發生靜態綁定。
也就是說編譯器在編譯代碼的時候就會決定到底調用哪個函數。它怎麼決定呢?看類型。如下:
bp->vf2();
//這句話,編譯器看到了bp是b*類型的,於是就去找b::vf2()這個函數,找到了於是綁定成功。
d.vf2();
//這句話,編譯器看到d是d類型的,於是去找d::vf2()這個函數,由於上面提到的隱藏原則,d不存在這個函數,於是沒找到,出錯。
dp->vf2();
//這句話,編譯器看到dp是d*類型的,去找d::vf2()這個函數,於是同上,找不到,出錯。
dp->vf3();//編譯器看到dp是d*類型的,於是找d::vf3()這個函數,找到了,於是綁定成功。
分析完這四句編譯器的行為,你就明白了吧。
我寫這么多,你好歹多加點分吧……

E. java繼承多態的練習題

Java繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的數據或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。
java多態存在的三個必要條件:
1.需要有繼承關系的存在
2.需要有方法的重寫
3.需要有父類的引用指向子類對象
希望對你有幫助。
第一題應該選D,第二題選C,D。
第一題屬於多態,methodB()方法屬於子類,父類沒有重寫子類的方法
第二題屬於繼承,子類可以繼承父類的方法

F. 一道JAVA編程題(繼承與多態)

很有難度啊、題目也比較發散、選擇性太多、太大、真是無從下手啊。。。

G. 就是一道c++關於繼承和多態的編程題,有沒有人願意幫做一下,挺急的

感覺演算法定義的非常差,一個類可以處理的事,要派生多個。。
再者,業務可以封裝到一個邏輯裡面,具體邏輯怎麼控制,你既然清楚計算規則,應該很容易寫出來。
如果是畢業設計作業的話,也就應付一下老師而已。

H. C++繼承多態簡單編程題

實現代碼如下:

#include<string>
#include<iostream>
classPet
{
public:
std::stringcolor;
intweight;
intage;
public:
virtualvoidspeak(){
std::cout<<"Petspeak..."<<std::endl;
}
};

classCat:publicPet
{
voidspeak(){
std::cout<<"Cat:miaomiaomiao..."<<std::endl;
}
};

classDog:publicPet
{
voidspeak(){
std::cout<<"Dog:wangwangwang..."<<std::endl;
}
};

intmain(intargc,char**args)
{
Pet*pet;

Catcat;
pet=&cat;
pet->speak();

Dogdog;
pet=&dog;
pet->speak();
}

I. java多態性的編程題目

publicclassPeople{
privateStringname;
privateIntegerage;
privateStringphone;
publicStringgetMessage(){
return"People:姓名:"+name+",年齡:"+age+",電話:"+phone;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicIntegergetAge(){
returnage;
}
publicvoidsetAge(Integerage){
this.age=age;
}
publicStringgetPhone(){
returnphone;
}
publicvoidsetPhone(Stringphone){
this.phone=phone;
}
}
{
privateIntegerid;

publicStringgetMessage(Integerid){
return"Student:姓名:"+super.getName()+",年齡:"+super.getAge()+",電話:"+super.getPhone()+",學號:"+id;
}

publicIntegergetId(){
returnid;
}

publicvoidsetId(Integerid){
this.id=id;
}

}
publicclassS{

publicstaticvoidmain(String[]args){
Studentstudent=newStudent();
student.setId(13);
student.setName("李三");
student.setAge(18);
student.setPhone("123-4567-8901");
System.out.println(student.getMessage(student.getId()));
}

}

J. c++關於繼承和多態性的編程題,求大神帶我飛

classPet
{
public:
Pet(stringc="",floatw=0,inta=0):color(c),weight(w),age(a){}
stringgetColor(){returncolor;}
virtualvoidspeak()=0;//純虛函數
private:
stringcolor;
floatweight;
intage;
};
classDog:publicPet
{
public:
Dog(stringc,floatw,inta):Pet(c,w,a){}
voidspeak()
{
cout<<getColor()<<"狗說:汪汪~ ";
}
};
classCat:publicPet
{
public:
Cat(stringc,floatw,inta):Pet(c,w,a){}
voidspeak()
{
cout<<getColor()<<"貓說:喵喵~ ";
}
};
intmain(){
Pet*p=0;

Dogd("黃",10,2);

Catc("花",1.5,3);

p=&d;p->speak();

p=&c;p->speak();

return0;

}

熱點內容
appleid為什麼連接伺服器出現問題 發布:2025-05-13 18:17:37 瀏覽:970
書翁怎麼配置 發布:2025-05-13 18:17:36 瀏覽:911
雲資料庫mongodb 發布:2025-05-13 18:16:12 瀏覽:773
A7編程 發布:2025-05-13 18:15:26 瀏覽:741
python視圖 發布:2025-05-13 18:14:01 瀏覽:758
win為什麼干不過安卓 發布:2025-05-13 18:12:27 瀏覽:586
文件夾只讀win8 發布:2025-05-13 18:11:41 瀏覽:272
xp安裝php 發布:2025-05-13 18:04:30 瀏覽:183
sqlserver介紹 發布:2025-05-13 17:58:00 瀏覽:4
雲閃付安卓版哪個版本好用 發布:2025-05-13 17:57:16 瀏覽:187