java基础 面向对象创建三个交通工具并完成其功能的试题

java基础 面向对象试题

题目:

现有交通工具(Seater),出租车(Taxi),客机(Airliner),客船(Ship)都属于交通工具。

各交通工具都有品牌(brand)字段和载客行为(manned)。

客机实现了IFly接口中定义的飞天的功能fly(),

出租车实现了IRun接口中定义的道路上跑的功能run(),

客船实现了ISwim接口中定义的游的功能swim()。
要求:
	1)用继承和接口,模拟各交通工具和功能的关系,功能用接口。
	2)请在测试类的main方法中用多态的知识,

		调用出租车的run方法,打印“出租车开始跑了”,	

		调用飞机的fly方法,打印“飞机开始飞天了”,	

		调用客船的swim方法,打印“船舶开始在海洋中漂泊了”,

用到的知识点和思路:

用继承和接口还有多态

用接口是为了强制他们的规范

用多态是因为以后会经常用到 所有现在就强加进去 这道题其实是不要用到多态的

用继承 继承父类有的所有交通类都有的品牌(brand)字段和载客行为(manned)并规范他们

用多态访问他们的子类的方法用强制转换

代码如下:
父类代码:
package com.cen.Object_oriented.day03._08_Seater;

public class Seater {
    //创建两个交通工具的品牌和名字
   private String brand;
   private String manned;

    public String getBrand() {
        return brand;
    }
    //空构造器
    public Seater(){

    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getManned() {
        return manned;
    }

    public void setManned(String manned) {
        this.manned = manned;
    }

    public Seater(String brand, String manned) {
        this.brand = brand;
        this.manned = manned;
    }
    public void Passenger(){

    }
}

出租车类:
public class Taxi extends Seater implements IRun{
    @Override
    public void run() {
        System.out.println("出租车开始跑了");
    }
    public void Passenger(){
        System.out.println("有载客行为");
    }
}
出租车接口:
public interface IRun {
    void run();
}

轮船类:
public class Ship extends Seater implements  ISwim {
    @Override
    public void swim() {
        System.out.println("船舶开始在海洋中漂泊了");
    }
    public void Passenger(){
        System.out.println("有载客行为");
    }
}

轮船接口规范:
public interface ISwim {
    void swim();
}

飞机类:
public class Airliner extends Seater implements IFly {
    @Override
    public void fly() {
        System.out.println("飞机开始飞天了");
    }
    public void Passenger(){
        System.out.println("有载客行为");
    }
}

飞机接口规范:
public interface IFly {
    void fly();
}

测试代码:
public class Team {
    public static void main(String[] args) {
        Seater s = new Taxi();
        s.setBrand("牛车牌");
        s.setManned("咔咔在路上走");
        System.out.println(s.getBrand());
        System.out.println(s.getManned());
        Taxi a = (Taxi)s;
        a.run();
        s.Passenger();
        System.out.println("------------------------------------------");

        Airliner al = new Airliner();
        al.setBrand("小鸟牌");
        al.setManned("叽叽在天上飞");
        System.out.println(al.getBrand());
        System.out.println(al.getManned());
        al.fly();
        al.Passenger();
        System.out.println("------------------------------------------");

        Ship sh = new Ship();
        sh.setBrand("金油鱼牌");
        sh.setManned("在海底爬");
        System.out.println(sh.getBrand());
        System.out.println(sh.getManned());
        sh.swim();
        sh.Passenger();
    }
测试结果:在这里插入图片描述
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值