【Java】猫和狗接口版本思路分析

目录

猫🐱和狗🐕(接口版本)

画图分析 

 案例代码


猫🐱和狗🐕(接口版本)

需求:对猫和狗进行训练,它们就可以跳高了,这里加入了跳高功能,请采用抽象类和接口来实现猫和狗的案例。

1. 定义跳高接口(JumpInterface)

  • 成员方法:跳高()——jump();

2. 定义动物类抽象类(Animal)实现跳高接口

  • 成员变量:姓名、年龄
  • 构造方法:无参、带参   
  • 成员方法:get/set方法,吃饭()——eat()

3. 定义猫类(Cat),继承动物类Animal

  • 构造方法:无参、带参
  • 成员方法:重写eat(),重写跳高jump()

4. 定义狗类(Dog),继承动物类Animal

  • 构造方法:无参、带参
  • 成员方法:重写eat(),重写跳高jump()

画图分析 


 案例代码

JumpInterface.java

package com.面向对象.Demo30;public interface JumpInterface {//跳高方法jump()void jump(); //==> public abstract void jump();
}

Animal.java

package com.面向对象.Demo30;public abstract class Animal implements JumpInterface {private String name; // 姓名public int age;      // 年龄public Animal() {}public Animal(String name, int age) {this.name = name;this.age = age;}/*** 在 Animal 动物类中 实际已经有一个 jump()跳高的 抽象方法* <p>* 抽象类 实现接口中的jump() 抽象方法* 相当于在Animal(抽象)类 实现了接口* 意味这在Animal类中存在jump()抽象方法* 正常情况是不需要写的,让抽象类的子类进行重写*/public abstract void eat();public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}

Cat.java

package com.面向对象.Demo30;public class Cat extends Animal {public Cat(String name, int age) {//super(); 默认第一行 调用父类中的无参构造方法super(name, age);}@Overridepublic void jump() {System.out.println("Cat-jump()");}@Overridepublic void eat() {System.out.println("Cat-eat()");}
}

Dog.java

package com.面向对象.Demo30;public class Dog extends Animal {
//    public Dog(String name, int age) {
//        super(name, age);
//    }@Overridepublic void jump() {System.out.println("Dog-jump()");}@Overridepublic void eat() {System.out.println("Dog-eat()");}
}

AnimalDemo.java

package com.面向对象.Demo30;public class AnimalDemo {public static void main(String[] args) {JumpInterface cat1 = new Cat("小猫1", 1);
//        System.out.println(cat1.getName() + "," + cat1.getAge());//报错,编译看左边,JumpInterface中没有get/set方法cat1.jump();
//        cat.eat(); //报错,编译看左边,JumpInterface中没有eat方法System.out.println("=============");Animal cat2 = new Cat("小猫2", 2);System.out.println("name:"+cat2.getName() + ",age:" + cat2.getAge());cat2.jump();cat2.eat();System.out.println("=========================");Animal dog = new Dog();dog.setName("小狗1");dog.setAge(1);System.out.println("name:"+dog.getName()+",age:"+dog.getAge());dog.jump();dog.eat();}
}

下一篇文章:

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

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

相关文章

Python常用功能的标准代码

后台运行并保存log 1 2 3 4 5 6 7 8 9 nohup python -u test.py > test.log 2>&1 & #最后的&表示后台运行 #2 输出错误信息到提示符窗口 #1 表示输出信息到提示符窗口, 1前面的&注意添加, 否则还会创建一个名为1的文件 #最后会把日志文件输出到test.log文…

【2023年11月第四版教材】第18章《项目绩效域》(第二部分)

TOC) 6 项目工作绩效域 1、有效执行工作绩效域可以实现预期目标&#xff0c;主要包含:①高效且有效的项目绩效;②适合项目和环境的项目过那益干系人适当的沟通和参与;④对实物资源进行了有效管理;⑤对采购进行了有效管理;⑥有.处理了变更;⑦通过持续学习和过程改进提高了团队…

阿里云服务器IP地址查询方法(公网IP和私网IP)

阿里云服务器IP地址在哪查看&#xff1f;在云服务器ECS管理控制台即可查看&#xff0c;阿里云服务器IP地址包括公网IP和私有IP地址&#xff0c;阿里云百科分享阿里云服务器IP地址查询方法&#xff1a; 目录 阿里云服务器IP地址查询 阿里云服务器IP地址查询 1、登录到阿里云服…

第47节——使用bindActionCreators封装actions模块

一、什么是action creators 1、概念 在Redux中&#xff0c;Action Creators是一种函数&#xff0c;它用于创建一个描述应用程序状态变化的action对象。Action对象是一个普通JavaScript对象&#xff0c;它包含一个描述action类型的字符串属性&#xff08;通常称为“type”&…

软件设计模式系列之二十五——访问者模式

访问者模式&#xff08;Visitor Pattern&#xff09;是一种强大的行为型设计模式&#xff0c;它允许你在不改变被访问对象的类的前提下&#xff0c;定义新的操作和行为。本文将详细介绍访问者模式&#xff0c;包括其定义、举例说明、结构、实现步骤、Java代码实现、典型应用场景…

k8s晋级之亲和性与反亲和性

nodeSelector 提供了一个非常简单的方式&#xff0c;将 Pod 限定到包含特定标签的节点上。亲和性与反亲和性&#xff08;affinity / anti-affinity&#xff09;特性则极大地扩展了限定的表达方式。主要的增强点在于&#xff1a; 表达方式更加有效&#xff08;不仅仅是多个精确…

卷积神经网络-卷积层

卷积神经网络 卷积神经网络&#xff08;convolutional neural network&#xff0c;CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff0c;是深度学习的代表算法之一。卷积神经网络具有表征学习能力&#xff0c;能够按其阶层结构对输入信息进行平移不变分…

算法:强连通分量(SCC) Tarjan算法

强连通分量&#xff0c;不能再加任何一个点了&#xff0c;再加一个点就不是强连通了 vector<int>e[N]; int dfn[N],low[N],tot; bool instk[N]; int scc[N],siz[N],cnt; void tarjan(int x){//入x时,盖戳,入栈dfn[x]low[x]tot;q.push(x);instk[x]true;for(auto y:e[x]){i…

卷积神经网络-池化层和激活层

2.池化层 根据特征图上的局部统计信息进行下采样&#xff0c;在保留有用信息的同时减少特征图的大小。和卷积层不同的是&#xff0c;池化层不包含需要学习的参数。最大池化(max-pooling)在一个局部区域选最大值作为输出&#xff0c;而平均池化(average pooling)计算一个局部区…

新款UI动态壁纸头像潮图小程序源码

新款UI动态壁纸头像潮图小程序源码&#xff0c;不需要域名服务器&#xff0c;直接添加合法域名&#xff0c;上传发布就能使用。 可以对接开通流量主&#xff0c;个人也能运营&#xff0c;不需要服务器源码完整。整合头像&#xff0c;动态壁纸&#xff0c;文案功能齐全。 源码…

pyqt5使用经验总结

pyqt5环境配置注意&#xff1a; 安装pyqt5 pip install PyQt5 pyqt5-tools 环境变量-创建变量名&#xff1a; 健名&#xff1a;QT_QPA_PLATFORM_PLUGIN_PATH 值为&#xff1a;Lib\site-packages\PyQt5\Qt\plugins pyqt5经验2&#xff1a; 使用designer.exe进行设计&#xff1…

INI文件读写

使用QSetting类&#xff0c;有两种实现方式 &#xff08;1&#xff09;通过键值对 &#xff08;2&#xff09;通过组 1、添加依赖文件 #include <QDebug> #include <QSettings>2、头文件 bool WriteIniFile(const QString fileName""); bool ReadIniF…

全栈开发对于物联网至关重要

物联网&#xff1a;它只是硬件&#xff0c;还是还有其他东西&#xff1f; 单独开发物联网设备并不是一项主要任务&#xff0c;但当物联网成为生态系统的一部分&#xff08;围绕持续连接和信息共享构建的生态系统&#xff09;时&#xff0c;它才真正发挥作用。为了概念化、开发…

智慧公厕:将科技融入日常生活的创新之举

智慧公厕是当今社会中一项备受关注的创新项目。通过将科技融入公厕设计和管理中&#xff0c;这些公厕不仅能够提供更便利、更卫生的使用体验&#xff0c;还能够极大地提升城市形象和居民生活质量。本文将以智慧公厕领先厂家广州中期科技有限公司&#xff0c;大量的精品案例项目…

rust运算

不同类型不能放在一起运算。如果非要计算&#xff0c;必须先强转成一个类型再运算。 一 、数字运算 &#xff08;一&#xff09;算术运算 a 10且b 5 名称运算符范例加ab的结果为15减-a-b的结果为5乘*a*b的结果为50除/a / b的结果为2求余%a % b的结果为0 Rust语言不支持自增…

复习 --- C++运算符重载

.5 运算符重载 运算符重载概念&#xff1a;对已有的运算符重新进行定义&#xff0c;赋予其另外一种功能&#xff0c;以适应不同的数据类型 4.5.1 加号运算符重载 作用&#xff1a;实现两个自定义数据类型相加的运算 1 #include<iostream>2 using namespace std;3 /…

flink集群部署

虚拟机配置 bigdata-hmaster 192.168.135.112 4核心 32GB bigdata-hnode1 192.168.135.113 4核心 16GB bigdata-hnode2 192.168.135.114 4核心 16GB 安装包&#xff1a;https://dlcdn.apache.org/flink/flink-1.17.1/flink-1.17.1-bin-scala_2.12.tgz 放到/usr/lcoal/lib目录…

黑豹程序员-架构师学习路线图-百科:CSS-网页三剑客

文章目录 1、为什么需要CSS2、发展历史3、什么是CSS4、什么是SASS、SCSS 1、为什么需要CSS 作为网页三剑客的第二&#xff0c;CSS为何需要它&#xff0c;非常简单HTML只能完成页面的展现&#xff0c;但其做出来的页面奇丑无比。 随着网络的普及&#xff0c;人们的要求更高&…

cmip6数据处理之降尺度

专题一 CMIP6中的模式比较计划 1.1 GCM介绍全球气候模型&#xff08;Global Climate Model, GCM&#xff09;&#xff0c;也被称为全球环流模型或全球大气模型&#xff0c;是一种用于模拟地球的气候系统的数值模型。这种模型使用一系列的数学公式来描述气候系统的主要组成部分…

arm 汇编基础指令

实现1-100求和 .text .globl _start_start:mov r0, #1 i&#xff0c;i1mov r1, #100 条件变量i<100mov r2, #0 sumLoop: 循环cmp r0,r1 比较r0和r1的大小bhi stop 当r0>r1时&#xff0c;跳到stop标签a…