JAVA多态案例(猫和狗)

简介: JAVA多态案例(猫和狗)

1. 案例:猫和狗

需求:

请采用多态的思想实现猫和狗的案例,并在测试类中进行测试。

分析:

(1)定义动物类(Animal)

成员变量:姓名、年龄;

构造方法:无参、带参

成员方法:get/set方法,吃饭()

(2)定义猫类(Cat),继承动物类

构造方法:无参、带参

成员方法:重写吃饭()

(3)定义狗类(Dog),继承动物类

构造方法:无参、带参

成员方法:重写吃饭()

(4)定义测试类(AnimalDemo),写代码测试

完整代码:

packageduotai;
publicclassanimal {
privateStringname;
privateintage;
publicanimal() {
    }
publicanimal(Stringname, intage) {
this.name=name;
this.age=age;
    }
publicStringgetName() {
returnname;
    }
publicvoidsetName(Stringname) {
this.name=name;
    }
publicintgetAge() {
returnage;
    }
publicvoidsetAge(intage) {
this.age=age;
    }
publicvoideat(){
System.out.println("动物吃东西");
    }
}


packageduotai;
publicclasscatextendsanimal{
publiccat() {
    }
publiccat(Stringname, intage) {
super(name,age);
    }
@Overridepublicvoideat() {
System.out.println("猫吃鱼");
    }
}


packageduotai;
publicclassDemo {
publicstaticvoidmain(String[] args) {
animala=newcat();
a.setName("mimi");
a.setAge(5);
System.out.println(a.getName() +","+a.getAge());
a.eat();
a=newcat("mimi2", 3);
System.out.println(a.getName() +","+a.getAge());
a.eat();
    }
}

运行结果:

mimi,5猫吃鱼mimi2,3猫吃鱼


相关文章
|
13天前
|
存储 Java
java用base64编码案例
Java Base64编码示例:导入`java.util.Base64`,设置字符串`originalString`,使用`Base64.getEncoder().encodeToString()`编码并存储到`encodedString`,打印编码后字符串。解码用`Base64.getDecoder().decode()`。
20 0
|
28天前
|
Java
Java中的继承和多态是什么?请举例说明。
Java中,继承让子类继承父类属性和方法,如`class Child extends Parent`,子类可重写父类方法。多态允许父类引用指向子类对象,如`Animal a = new Dog()`,调用`a.makeSound()`会根据实际对象类型动态绑定相应实现,增强了代码灵活性和可扩展性。
13 0
|
1月前
|
设计模式 Java
Java基础—笔记—多态、final、抽象类、接口篇
该文介绍了编程中的多态、final和抽象类、接口相关概念。多态允许子类重写父类方法,通过父类引用调用子类方法,实现解耦和提高代码灵活性,但也可能导致无法使用子类特有功能,需通过强制类型转换解决。final用于修饰不可变的类、方法或变量,防止继承、重写和多次赋值。抽象类是一种包含抽象方法的类,用于强制子类重写特定方法,实现多态,适用于模板方法设计模式,解决代码重复问题。
20 0
|
1天前
|
Java
java面向对象——包+继承+多态(一)-2
java面向对象——包+继承+多态(一)
14 3
|
1天前
|
SQL Java 编译器
java面向对象——包+继承+多态(一)-1
java面向对象——包+继承+多态(一)
15 2
|
1天前
|
设计模式 消息中间件 安全
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
8 0
|
2天前
|
Java 编译器 C++
Java 多态
5月更文挑战第3天
|
10天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
12天前
|
Java
【专栏】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性
【4月更文挑战第28天】Java 8 的 Streams 提供了一种处理数据集合的新方式,增强了代码的可读性和可维护性。本文介绍了 Streams 的基本概念,如从数据源创建 Stream,以及中间和终端操作。通过过滤、映射、归并、排序、分组等案例,展示了 Streams 的使用,包括并行 Streams 提高效率。学习 Streams 可以提升代码质量和效率,文章鼓励读者在实际开发中探索更多 Streams 功能。
|
13天前
|
Java Apache
java读取excel数据案例
Java代码示例使用Apache POI库读取Excel(example.xlsx)数据。创建FileInputStream和XSSFWorkbook对象,获取Sheet,遍历行和列,根据单元格类型(STRING, NUMERIC, BOOLEAN)打印值。需引入Apache POI库并确保替换文件路径。
11 1