多态、接口、类练习题

news/2024/10/11 7:31:43/

代码:

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

接口:

java">interface  Vehicles{public void work();
}
java">lass Horse implements Vehicles{@Overridepublic  void work() {System.out.println("大陆骑马去");}
}
java">class Boat implements  Vehicles{@Overridepublic void work() {System.out.println("过河坐船去");}
}
java">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();}}
java">public class VehiclesFactory {//写static,可以直接调用方法,不用创建对象public static Horse getHorse() {return new Horse();}public static Boat getBoat() {return new Boat();}
}

结果:


http://www.ppmy.cn/news/1503261.html

相关文章

《从零开始做个摸鱼小网站! · 序》灵感来源

序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了,虽然优惠只有一年&a…

vue3 【自定义事件】mitt 实用教程 (可用于跨组件通信)

官网 https://github.com/developit/mitt 安装 mitt npm i --save mitt创建文件 src/emitter.js import mitt from "mitt";export default mitt();mitt 的核心语法 // 创建事件 foo emitter.emit(foo, { a: b })// 监听事件 foo emitter.on(foo, e > console.log(…

公布一批脸书爬虫(facebook)IP地址,真实采集数据

一、数据来源: 1、这批脸书爬虫(facebook)IP来源于尚贤达猎头公司网站采集数据; ​ 2、数据采集时间段:2023年10月-2024年7月; 3、判断标准:主要根据用户代理是否包含“facebook”和IP核实。…

【漏洞复现】APP分发签名系统index-uplog.php存在任意文件上传漏洞

漏洞描述 APP分发签名系统index-uplog.php存在任意文件上传漏洞 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵…

HashMap 面试题整理

HashMap 面试题整理 介绍下 HashMap 的底层数据结构 在 JDK1.7 和 JDK1.8 中有所差别: 在 JDK1.7 中,由“数组链表”组成,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的。 在 JDK1.8 ,由“数组链表红…

景区导览系统开发

景区导览系统的开发是一个综合性的项目,涉及多个领域的知识和技术,包括互联网、移动开发、数据库管理、地图导航、人工智能等。以下是一个详细的开发流程介绍: 一、需求分析 市场调研:了解当前旅游市场的趋势和游客的需求&#…

Java实现数据库图片上传(包含从数据库拿图片传递前端渲染)-图文详解

目录 1、前言: 2、数据库搭建 : 建表语句: 3、后端实现,将图片存储进数据库: 思想: 找到图片位置(如下图操作) 图片转为Fileinputstream流的工具类(可直接copy&#…

Qt实现简易CAD软件的开发:技术解析与实现

文章目录 简易CAD软件的开发:技术解析与实现引言项目概述程序入口主窗口的实现主窗口类定义(mainwindow.h)主窗口类实现(mainwindow.cpp) 自定义绘图视图自定义绘图视图类定义(myqgraphicsview.h&#xff0…