创建一个抽象交通工具Vehicle类

创建一个抽象交通工具Vehicle类,它有 wheelNum 和 seatNum 两个成员变量以及抽象方法 display()。 类 Bus 和类 Motorcycle 继承自Vehicle类,实现打印成员变量的 display()方法。在主函数中分别生成Bus对象和Motorcycle对象,上转型为Vehicle对象调用 display()方法。

abstract class vehicle {
    int wheelnum;
    int seatnum;

    abstract public void display();
}
class bus extends vehicle{
    public bus(){
        wheelnum=4;
        seatnum=30;
    }
    public void display(){
        System.out.println("公交车轮子数:"+wheelnum+"座位有:"+seatnum);
    }
}
class motorcycle extends vehicle{
    public motorcycle(){
    wheelnum=2;
    seatnum=2;}
    public  void display(){
        System.out.println("摩托车轮子数:"+wheelnum+"座位"+seatnum);
    }
}
public class Main {
    public static void main(String[] args) {
        vehicle bus=new bus();
        bus.display();
        vehicle motorcycle=new motorcycle();
        motorcycle.display();
    }
}

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 请创建一个抽象类DataStructure,该包括下面的成员变量和成员函数: 1) 一个成员变量len,表示里面的元素个数最大值 2) 构造函数DataStructure(int l),将len初始化为0 3) 虚析构函数~DataStructure() 4) 纯虚函数Output(),输出DataStructure中的数据 5) 纯虚函数Size(),返回DataStructure中的元素个数 2. 请创建DataStructure的一个派生MyString,该包括下面的成员变量和成员函数: 1) 一个成员变量char* data,表示里面的数据 2) 构造函数MyString(int max_size),将MyString初始化为空串,最大元素个数为max_size 3) 析构函数~MyString(),释放相应的数据 4) Input()函数,往MyString输入数据 5) 重载operator+=()函数,实现两个字符串的连接 6) 重定义Output()和Size()函数 3. 请创建DataStructure的一个派生MyStack,该包括下面的成员变量和成员函数: 1) 一个成员变量int* data,用于里面的数据 2) 一个成员变量int top,表示最上面的元素下标 3) 构造函数MyStack(int max_size),将MyStack初始化为空栈,最大元素个数为max_size 4) 析构函数~MyStack(),释放相应的数据 5) Push_back(int e)函数,往栈里面压入一个数据e 6) 重定义Output()和Size()函数 4. 请编写main函数,测试上面程序的正确性 1) 创建两个MyString的对象str1和str2,分别调用Input函数输入str1和str2,然后分别调用operator+=函数将str2连接到str1的末尾 2) 创建一个MyStack的对象stack,调用Push_back函数输入往stack中输入m(m < max_size)个数据 3) 创建一个长度为3的DataStructure*型的数组,将其3个元素分别指向str1, str2, stack,然后编写for循环调用Size()和Output()函数输出每个元素的大小和内容。 5. 输入输出样例: 1) 输入样例 A promising techni que for checking reachability 4 12 23 34 45 2) 输出样例 47 A promising technique for checking reachability 29 que for checking reachability 4 12 23 34 45
### 回答1: 好的,下面是用中文回复: 要创建一个vehicle并将它声明为抽象类,可以按照以下步骤进行: 1. 首先,在代码中创建一个名为vehicle。 2. 在的声明前面加上abstract关键字,将它声明为抽象类。 3. 在抽象类中定义一些抽象方法,这些方法没有具体的实现,只是声明了方法名和参数列表。 4. 抽象类中也可以定义一些具体的方法,这些方法有具体的实现。 5. 抽象类不能被实例化,只能被继承。子必须实现抽象类中的所有抽象方法,否则子也必须声明为抽象类。 6. 抽象类可以有构造方法,但不能被直接调用,只能在子中被调用。 下面是一个示例代码: abstract class vehicle { public void start() { System.out.println("启动车辆"); } public abstract void run(); public abstract void stop(); } 在这个示例中,vehicle被声明为抽象类,其中定义了一个具体方法start()和两个抽象方法run()和stop()。子必须实现这两个抽象方法,否则子也必须声明为抽象类。 ### 回答2: 在面向对象编程中,抽象类是一种不能被直接实例化的,它只能用来继承和派生出其他创建一个Vehicle并将它声明为抽象类,可以为我们设计出更加灵活、可扩展、易维护的程序提供便利。下面我们就来具体了解一下如何创建一个Vehicle抽象类。 首先,我们需要定义一个Vehicle来描述车辆的属性与行为。车辆的属性可以包括颜色、品牌、型号等,行为可以包括驾驶、加速、制动等。由于车辆的属性和行为的种非常多,我们无法在Vehicle中定义所有的属性和行为,因此,我们需要将Vehicle声明为抽象类。在Java中,我们可以使用abstract关键字来声明抽象类。例如: ```java abstract class Vehicle { //Vehicle成员变量和方法 } ``` 在声明为抽象类之后,Vehicle不能直接实例化,而只能用作其他的父。我们可以创建一些子来继承Vehicle,并在子中实现抽象方法和属性。例如,我们可以创建一个Car来描述汽车,一个Bicycle来描述自行车,一个Motorcycle来描述摩托车等等。假设我们需要在Vehicle中定义一个抽象方法start(),子必须实现这个方法来启动车辆。那么,我们可以在Vehicle中声明这个方法为抽象方法。例如: ```java abstract class Vehicle { //Vehicle成员变量和非抽象方法 //抽象方法定义 public abstract void start(); } ``` 这样,所有的子都必须实现start()方法,否则编译器会报错。 在创建Vehicle抽象类时,还可以为它添加抽象属性、抽象静态方法,以及一些非抽象方法抽象属性和抽象静态方法的定义似于抽象方法。例如: ```java abstract class Vehicle { //抽象属性定义 public abstract String getColor(); //抽象静态方法定义 public static abstract double getTopSpeed(); //非抽象方法定义 public void stop() { //车辆的制动行为 } } ``` 抽象类是一种非常重要的编程抽象工具,它可以帮助我们构建更加灵活和可扩展的程序。当我们使用抽象类时,需要注意抽象方法和属性的定义,以及子的实现。同时,抽象类还需要与其他面向对象的概念(例如接口、继承、多态等)结合使用,才能发挥出其最大的作用。 ### 回答3: 创建一个Vehicle并将其声明为抽象类是一种良好的编程实践。Vehicle可以作为一个,用于表示所有车辆的共同属性和行为。因为车辆有很多种,如汽车、卡车、火车、飞机等,它们虽然有很多共同点,但有一些属性和行为是不同的。 将Vehicle声明为抽象类的原因是,我们在定义Vehicle时,并不知道要实现哪些具体的属性和行为。但我们知道,所有车辆都有一些共同的属性和行为,比如车轮数量、最大速度、加速度、制动力等等。这些属性和方法可以作为抽象方法抽象属性来定义。这些抽象方法抽象属性需要在子中实现或者覆盖。 例子来说,我们可以定义一个名为Vehicle抽象类,它有车轮数量、最大速度、加速度、制动力等属性。同时,我们可以定义一些抽象方法,例如加速、制动、转向等。每个子必须覆盖这些抽象方法以实现各自不同的行为。例如,汽车子的加速方法可能需要考虑引擎转速和油门踏板的位置,而卡车子的加速方法可能需要考虑载重和路况等因素。 通过创建Vehicle并将其声明为抽象类,我们可以呈现车辆的基本属性和行为,并向子强制执行这些属性和行为。这种抽象设计有助于提高代码的平稳性和可维护性,简化代码的编写和管理,使代码更易于扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

invincible_Tang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值