首页 > 编程语言 >java中多态的扩展性

java中多态的扩展性

时间:2024-09-25 14:23:10浏览次数:1  
标签:java void 多态 扩展性 System Animal println public out

创建一个动物父类和狗,猫子类,当这些子类中有共同方法只是实现不同时,我们可以利用多态的扩展性

class Animal{
    public void eat(){
        System.out.println("吃饭");
    }
    public void sheep(){
        System.out.println("睡觉");
    }
}

class Dog extends Animal{
    public void eat(){
        System.out.println("狗吃肉");
    }
    public void sheep(){
        System.out.println("狗侧着睡觉");
    }
}

class Cat extends Animal{
    public void eat(){
        System.out.println("猫吃鱼");
    }
    public void sheep(){
        System.out.println("猫躺着睡");
    }
}

如上狗类和猫类都有相同的方法,只是实现不同,此时我们可以编写一个工具类,并在工具类中编写一个成员方法,以Animal为参数,调用其共同的方法

//可以将不同类的共同方法存放在一个单独的类方法中,这样后续创建新类时想要调用该新类方法时,不需要再去添加该类的方法
class AnimalTool{
    public static void Fun(Animal animal){ //以类名作为参数类型,后面传的值就相当于为:Animal animal =new Dog(多态)
        animal.eat();                      //用对象名去调用方法时满足编译看左,运行看右,所以会去Dog类里面去找该方法并运行
        animal.sheep();
    }
}

测试类

public class DuoTaiDemo1 {
    public static void main(String[] args) {
        //父类的引用指向子类对象
        Animal a1=new Dog();
        AnimalTool.Fun(a1);     //AnimalTool会调用自己的静态方法Fun,然后我们将a1(Dog对象)作为参数传入给Fun方法
        //父类的引用指向子类对象
        Animal c1=new Cat();
        AnimalTool.Fun(c1);
    }

}

标签:java,void,多态,扩展性,System,Animal,println,public,out
From: https://www.cnblogs.com/ndmtzwdx/p/18431291

相关文章

  • DC00015基于java web校园网上购物系统
    1、项目功能演示DC00015【含配套文档】基于javaweb校园网上购物系统2、项目功能描述 基于javaweb校园网上购物系统分为用户和系统管理员两个角色。2.1用户功能1、系统登录、用户注册、忘记密码2、商品浏览、商品详情3、购物车、付款4、我的订单5、修改密码、......
  • JavaScript 之父联手近万名开发者集体讨伐 Oracle:给 JavaScript 一条活路吧!
    JavaScript之父联手近万名开发者集体讨伐Oracle:给JavaScript一条活路吧!投递人 itwriter 发布于 2024-09-2401:08 评论(6) 有1528人阅读 原文链接 [收藏] « »近日,据外媒消息,JavaScript杰出人士和至少9000名其他相关方签署了一封联名信,再次要求Oracle......
  • 使用 NCache 将 Java 微服务扩展到极致性能
            微服务已成为软件开发领域的一种变革性架构方法,提供了从整体结构到更加模块化和可扩展的系统的范式转变。微服务的核心是将复杂的应用程序分解为更小的、可独立部署的服务,这些服务可以无缝通信,从而提高敏捷性、灵活性和易维护性。这种分散的方法使开发人员能够专注......
  • Java 性能调优:调整 GC 线程以获得最佳结果
        垃圾回收(GC)在Java的内存管理中起着重要作用。它有助于回收不再使用的内存。垃圾回收器使用自己的线程集来回收内存。这些线程称为GC线程。有时,JVM最终可能会有太多或太少的GC线程。在这篇文章中,我们将讨论为什么JVM最终会拥有太多/太少的GC线程,它的后果,以及解......
  • 什么是带有示例的 Java 中的交错数组?
    Java中的交错数组交错数组,也称为数组数组,是一种数据结构,其中数组用于存储其他数组。交错数组的主要特征是主数组的每个元素可以具有不同的大小,从而允许在二维结构中使用可变的列长度。为了理解Jagged数组的概念,让我们考虑一个例子。假设我们想要存储有关学生及其各自成绩的信息......
  • 使用 AuraDB 免费版构建 Java 微服务
        对于今天的冒险,我们希望构建一个Java微服务,它连接到Neo4jAuraDBFree数据库中的图形数据并与之交互。我们的数据是 Goodreads数据集的精简版本,其中包括书籍、作者和评论信息。虽然书籍和作者非常适合MongoDB等文档数据库,但一旦您将评论添加到组合中,关系的细微差别......
  • 了解 Java 中的浮点精度问题
    Java浮点数看起来很熟悉在 Java 中,我们有两种类型的浮点数:和.所有 Java开发人员都知道它们,但无法回答以下模因中描述的简单问题:floatdouble你够机器人吗?您对Float和Double了解多少?float并表示浮点数。使用32位,而使用64位,可用于十进制或小数部分。但这实际上意味着什......
  • 基于Java的宠物之家小程序 宠物服务小程序【源码+调试】
    精彩专栏推荐订阅:在下方主页......
  • 【JUC并发编程系列】深入理解Java并发机制:阻塞队列详解与简单纯手写(七、BlockingQueu
    文章目录【JUC并发编程系列】深入理解Java并发机制:阻塞队列详解与简单纯手写(七、BlockingQueue、ArrayBlockingQueue、LinkedBlocking)1.简单回顾1.1数组结构和链表结构1.1.1数组结构1.1.2链表结构1.2有界队列与无界队列1.3Lock锁使用回顾2.什么是阻塞队列3.B......
  • 【JUC并发编程系列】深入理解Java并发机制:Volatile从底层原理解析到高级应用技巧(六、
    文章目录【JUC并发编程系列】深入理解Java并发机制:Volatile从底层原理解析到高级应用技巧(六、Volatile关键字、JMM、重排序、双重检验锁)1.Volatile的特性2.Volatile的用法3.CPU多核硬件架构剖析4.JMM内存模型4.1主要特性4.2JMM的工作原理4.3实现机制5.JMM八......