首页 > 其他分享 >11月5每日打卡

11月5每日打卡

时间:2023-11-06 09:27:14浏览次数:97  
标签:11 void dog Cat public Override 打卡 cat 每日

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠:

代码

Cat接口(另一个类似):

public interface Cat {
void cry();
void catchMouse();
}

实体Cat类(另一个类似):

public class ConcreteCat implements Cat{
@Override
public void cry() {
System.out.println("猫叫");
}
@Override
public void catchMouse() {
System.out.println("猫抓老鼠");
}
}

适配器类:

public class Adapter implements Dog,Cat{
private Cat cat;
private Dog dog;
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
@Override
public void cry() //猫学狗叫
{
System.out.print( "猫学");
dog.wang();
}
@Override
public void catchMouse() {
cat.catchMouse();
}
@Override
public void wang() {
dog.wang();
}
@Override
public void action() //狗学猫抓老鼠
{
System.out.print( "狗学");
cat.catchMouse();
}
}
}

Test测试类

public class Test {
public static void main(String args[])
{
Cat cat1 = new ConcreteCat();
Dog dog1 = new ConcreteDog();
Adapter A1 = new Adapter();
A1.setCat(cat1);
A1.setDog(dog1);
cat1 = (Cat) A1;
cat1.catchMouse();
cat1.cry();
dog1 = (Dog) A1;
dog1.action();
}
}

标签:11,void,dog,Cat,public,Override,打卡,cat,每日
From: https://www.cnblogs.com/yunbianshangdadun/p/17811795.html

相关文章

  • 11月6每日打卡
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • 11月7每日打卡
    用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。源码://Road.javapackageshiyan9;publicabstractclassRoad{protectedVehiclevehicle;publicvoidsetVehicle(Vehicleve){this.vehicle=ve;}publicabstractvo......
  • 11月4每日打卡
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图; 2.......
  • 11.6日记
    继承是面向对象的三大特性之一,但很多时候使用继承的结果却不尽如人意。除了人尽皆知的紧耦合问题外,有的时候还会导致子类的快速膨胀。设想这样一个场景:最初设计的时候有一个类型Product,但后来随着新需求的出现,X原因导致了它的变化,X有两种情况,则通过继承需要创建两个新的子类Produc......
  • 11.5
    11.5printf和scanf介绍占位符在scanf和printf中可以使用,意思是这个位置是有占位符占用,可以在双引号时候使用逗号分隔开需要替换的值,其与占位符一一对应"%d%c%d",21,a,22--->21a22常用占位符列举%a:⼗六进制浮点数,字⺟输出为⼩写%A:六进制浮点数,字⺟输出为⼤写%c:字符%d:⼗......
  • 11月2号
    今天上完数据结构课后留了三道力扣上的题目,我在今天完成了前两道题目。今天上完课后去科技楼开会,开完会走的时候还碰上了王建民老师,还说我们晚上有点闲,要给我们找活干,我们可一点也不闲啊...... 94题:二叉树的中序遍历/***Definitionforabinarytreenode.*structTr......
  • 11月3号
    今天完成了力扣最后一道作业,并开始忙碌学生会的各项工作。226题:翻转二叉树/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}......
  • 2023/11/5 <div>标签的介绍
    <div>标签是用来为HTML文档的内容提供结构和背景的元素。<div>开始标签和</div>结束标签之间的所有内容都是用来构成这个快的,其中所包含标签的特性由<div>标签中的属性来控制,或者通过使用样式表格式化这个表来进行控制。 div全称division,意为分割.<div>标签被称为分割标签,表示......
  • test20231103
    T1还算是一道简单题,通过二分可以轻松求解。(但是我因为没有判断左端点挂了\(10pts\),不然我就是本场比赛的\(rk1\)了)虽然题解上说单调性是错误的,但是而二分能过,那就二分水过去吧。intn,k;inta[2050];boolvis[2050];inlineintwork(intx){memset(vis,0,sizeof......
  • B站C语言第11课——函数和递归
    1.工具cpulspuls.com  程序员知乎:stackoverflow.com232.递归——程序调用自身的编程技巧称为递归史上最简单的递归intmain(){ printf("hehe\n"); main(); return0;}递归常见的错误:栈溢出——例子1:#include<stdio.h>voidprintf(intn){if(n>9){print(n/10);}pr......