多态、接口、类练习题

news2024/11/24 14:39:57

代码:

 public static void main(String[] args) {
        Person2 person=new Person2("唐僧",new Horse());
   person.passRiver();
   person.onRoad();
    }

接口:

interface  Vehicles{
    public void work();
}
lass Horse implements Vehicles{

    @Override
    public  void work() {
        System.out.println("大陆骑马去");
    }
}
class Boat implements  Vehicles{

    @Override
    public void work() {
        System.out.println("过河坐船去");
    }
}
class Person2{
    private String name;
    private Vehicles Vehicles;

    public Person2(String name, Vehicles vehicles) {
        this.name = name;
        Vehicles = vehicles;
    }
    public void passRiver() {
        if (Vehicles == null) {
            Vehicles = VehiclesFactory.getBoat();
        }
            //过河,先从工厂获取一艘船
            Boat boat = VehiclesFactory.getBoat();
            boat.work();
        }
        public void onRoad () {
            //判断当前属性是否已经存在
            if (Vehicles == null) {
                Vehicles = VehiclesFactory.getHorse();
            }
            //过河,先从工厂获取一艘船
            Horse horse = VehiclesFactory.getHorse();
            horse.work();
        }

}
public class VehiclesFactory {
    //写static,可以直接调用方法,不用创建对象
    public static Horse getHorse() {
        return new Horse();
    }

    public static Boat getBoat() {
        return new Boat();
    }
}

结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1963070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HIS系统开发,医院HIS系统开发注意事项

在当今信息化迅速发展的时代,医院信息系统(HIS)的开发已成为提升医疗服务效率和质量的关键。HIS系统的开发并非易事,它涉及到众多复杂的技术和管理问题。以下是开发HIS系统时需要特别注意的几个关键问题。 数据安全与隐私保护是HI…

正点原子imx6ull-mini-Linux驱动之Linux 并发与竞争实验(8)

在上一章中我们学习了 Linux 下的并发与竞争,并且学习了四种常用的处理并发和竞争的 机制:原子操作、自旋锁、信号量和互斥体。本章我们就通过四个实验来学习如何在驱动中使 用这四种机制。 1:原子操作实验 本例程我们在第四十五章的 gpiol…

不想交智商税的都收藏了!K9、希喂、渴望,最近风超大的猫咪主食罐测评

宠物行业有多卷咱就不说了,反正某宝一打开品牌多达上百个,各种猫粮产品更是数不胜数!不懂点门道的人选起来确实有点费脑子。不过我养猫这七八年来,前前后后入手过的主食罐头少说也有三十来款,自认还是积累了一些经验。…

《python语言程序设计》2018版第6章第21题平方根的近似求法math模块里有几种实现sqrt函数的方法

只能针对“1111” 或者“77”这样的,其它的不行。但是很成功了 def sqrt(n):lastGuess 0#我让他们两个相等,来建立循环的条件nextGuess n#这样就给了lastGuess和nextGuess进行循环的条件while lastGuess ! nextGuess:lastGuess 1nextGuess (lastGue…

【宝藏系列】物联网中常用的十种通信协议

【宝藏系列】物联网中常用的十种通信协议 文章目录 【宝藏系列】物联网中常用的十种通信协议1️⃣MQTT2️⃣CoAP3️⃣AMQP4️⃣XMPP5️⃣LwM2M6️⃣HTTP7️⃣DDS8️⃣Bluetooth Low Energy9️⃣LoRaWAN1️⃣0️⃣NB-IoT 1️⃣MQTT MQTT(Message Queuing Telemetry T…

51单片机和STM32区别

51单片机和 STM32 区别 51单片机和 STM32 是两种常见的微控制器,它们在架构、性能、外设接口、功耗和开发环境等方面有所不同。 1. 架构差异 51单片机基于传统的哈佛总线结构,采用 CISC 架构,而 STM32 基于 ARM Cortex-M 系列的32位处理器核…

JavaScript高级程序设计教程(第3版 电子版教程)

前言 JavaScript 是一种非常松散的面向对象语言,也是 Web 开发中极受欢迎的一门语言。JavaScript,尽管它的语法和编程风格与 Java 都很相似,但它却不是 Java 的“轻量级”版本,甚至与 Java 没有任何关系。JavaScript 是一种全新的…

vue一些npm i 时报错问题解决【JAVA前后端分离】

前端vue npm i 安装时出现 作为一个懂些前端得 JAVA开发自然是要粗暴解决这个问题了 问题解决 使用命令 npx -p npm6 npm i 即可编译 原因: ERESOLVE与npm版本有关,因为npm版本高对某些事情比npm6.x更严格。通常,最简单的解决方法是将--…

农合生活平台更新升级啦!了解详情戳这里

7月24日,农合生活平台完成了新一轮的版本更新。新版本上线后,农元NYT购买数量将不做限制,优惠券更易得,购物更划算,农元价值升值将进一步「加速度」。 更新说明 1. 数量:旧版本中农元只能定额定量购买&…

卡奥斯智能交互引擎:引领工业智能,共创数字化未来

​智能交互引擎:https://www.cosmoplat.cnhttps://datayi.cn/w/nPN4v4e9 📖一、平台简介 卡奥斯智能交互引擎聚焦工业领域,是卡奥斯结合海尔40年的工业制造经验积累和7年工业互联网平台建设的最佳工业智能实践。该引擎集成了工业大模型技术,基于卡奥斯…

Windows Server搭建Prometheus+Grafana监控系统

1.相关资源下载 所需资源百度网盘下载链接:https://pan.baidu.com/s/1wGH4KL085roIYBkTqmM5Og?pwd1111,也可根据下述方法,在官网进行下载。 1.1 Prometheus下载 访问地址https://prometheus.io/download/,点击prometheus-2.53…

项目管理中的关键:进度管理

项目管理中,进度管理无疑占据了举足轻重的地位,它不仅关乎项目能否按时完成,更是衡量项目效率、成本控制及质量保障的重要标尺。 它要求管理者根据项目的总体目标,科学合理地制定项目进度计划,并在项目实施过程中进行…

线程池参数设置问题

线程池主要包括以下参数&#xff1a; ThreadPoolExecutor executor new ThreadPoolExecutor(2,//核心线程数2,//最大线程数60L,//空闲线程存活时间TimeUnit.SECONDS,new ArrayBlockingQueue<>(2),//任务队列Executors.defaultThreadFactory(),new ThreadPoolExecutor.C…

分布式应用系统设计.Feed 流系统(学习笔记)

什么是Feed 流系统 今天记录 Feed 流系统的设计学习笔记&#xff0c;Feed 流常见系统包括 Twitter、微博、Instagram 和抖音等等&#xff0c;它们的特点是&#xff0c;每个用户都是内容创作者&#xff0c;每个用户也都是内容消费者&#xff0c;每个用户看到的内容都是不同的&a…

PyTorch学习(2)-猫狗大战数据集分类识别-PyTorch代码实训

猫狗大战数据集分类识别-PyTorch代码实训 二分类任务 数据集文件目录结构图 pythonProject/ │ ├── cat_recognition.py │ └── kagglecatsanddogs_5340/└── PetImages/├── Cat/...└── Dog/...Cat和Dog文件夹中的图片的后缀均为.jpg 代码1&#xff08;实现…

MYSQL多表数据去重、合并、取并集等

SQL join 用于把,来自两个或多个表的行结合起来。 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。。 1、SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key 2、SELECT <select_list> FROM TableA A LEFT …

在VMware里面安装Linux安装教程

!(https://gitee.com/code-shuyi/local-images/raw/master/image/202407311020201.png) 5385453)] [外链图片转存中…(img-BiUfrRTp-1722395385453)]

替代TLD5190同步四开关升降压LED专用电源调节器,支持PWM调光功能,具有强制电流调节模式

特征:PC8655替代TLD5190  AEC-Q100合格 −设备环境温度&#xff1a; -40C≤TA≤125C −器件结温&#xff1a; -40C≤TJ≤150C  工作输入电压4.5V至55V&#xff0c;启动电压降至4.5V  在各种条件下效率都很高&#xff0c;高达96%  3%LED电流精度  高侧PMOS调…

C语言中的浮点数存储:深入探讨

案例引入 请看下面一段代码并思考结果&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() {int n 9;float* pFloat (float*)&n;printf("n的值为&#xff1a;%d\n", n);printf("*pFloat的值为&#xff1a;%f\n", *…