当前位置:首页 » 编程软件 » 多态编程题

多态编程题

发布时间: 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;

}

热点内容
解压体育馆 发布:2025-05-13 21:27:48 浏览:263
哪家编程课 发布:2025-05-13 21:27:04 浏览:895
为什么文件要压缩 发布:2025-05-13 21:16:07 浏览:50
局域网怎么搭建校时服务器 发布:2025-05-13 21:11:32 浏览:677
存储器读写实验心得 发布:2025-05-13 21:09:23 浏览:15
派派手机如何设置密码 发布:2025-05-13 21:08:02 浏览:774
狱辱实验栋第2集在线ftp 发布:2025-05-13 21:02:06 浏览:11
安卓桌面应用如何变大 发布:2025-05-13 20:59:39 浏览:361
解压通知单有什么用 发布:2025-05-13 20:58:37 浏览:567
俄罗斯方块的编程 发布:2025-05-13 20:51:08 浏览:611